*.PY 文件怎样在没有安装python 引用py的机器上运行? 新手,没有分,有共同兴趣的可以联系我,大家共同探讨 552055700

我初学python 书上说保存程序后 windows系统中直接双击打开.py文件 就会以dos窗口运行程序_百度知道
我初学python 书上说保存程序后 windows系统中直接双击打开.py文件 就会以dos窗口运行程序
为什么我打开保存后的.py文件它让我选择打开方式呢?
提问者采纳
:&#92:右键我的电脑-&环境变量;Python26。,就重新装一次python就行2,这种还是选择用IDLE来运行吧,在变量值的框中,然后再下边的 系统变量 选择框中。所以,所以会一闪而过: ,你得安装python的运行环境呗;高级-&gt:&#92。,双击path(大小写无所谓),或许根本没有什么结果留下:C。如果只是print之类的语句,记得在路径之前添加分号(;C:例如你的程序为,cmd窗口是不会自动pause的,因为执行的速度很快的时候首先;Python26,当然是英文输入法下的分号3;),添加,如果不会设置;属性-&gt。1,则你需要把这个地址粘贴在. 需要设置环境变量. 默认的程序要设置。。. 这一点很重要
其他类似问题
按默认排序
其他3条回答
小wo_在路上“,Eclipse 装pydev 是不错的选择,编写python 用个好点的编辑软件吧, 你的情况就是环境变量问题,再说,正解
你的py文件没有关联python程序
程序设置问题11
dos窗口的相关知识
您可能关注的推广
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁win7装了python右键点.py的文件没有idle编辑的选项_百度知道
win7装了python右键点.py的文件没有idle编辑的选项
,求大神指教。正在学习python,设置了环境变量,还是不行,但发现安装后右键点击没有用idle编辑的选项,cmd能直接打开pythonRT
提问者采纳
\\Python32\\pythonw:\\Python32\\Lib\\idlelib\\把路径改为你的路径。尤其是win7是64位的;C:方法1;[HKEY_CLASSES_ROOT\Python.File\shell\EditwithIDLE]@=&quot.00[HKEY_CLASSES_ROOT\PEditor&5;Registry&右键&nbsp。方法2;IDLE&Version&nbsp,然后容易出现这类问题;%1\&quot,即可:py&nbsp:google搜。解决办法;C:Windows&\&&amp:重新安装和你当前win7版本匹配的python.&quot.exe\&quot,双击运行;idle&nbsp,然后另存为;with&没有然后去修改别人给出的那个注册表;&Edit&nbsp.pyw\&-e&&nbsp.File\shell\EditwithIDLE\command]@=&\&\&quot猜测是你的安装的python版本,然后你安装了32位的python,和win7的版本不匹配
两个方法都试了,从官网下了64位的版本,也改了注册表,都没用
确保完整卸载之前的版本,再安装你所匹配的版本。你的win7是什么版本?你怎么改的注册表?
重新卸载了一遍,卸载完还用软件清楚了残留数据安装的,还是一样。win7是家庭普通版64位的,python安装文件是在官网下的,2.6.6的64位版本python-2.6.6.amd64,是不是这个有问题改注册表是用你说的方法,复改成制到文档里面,改了安装路径后改成reg格式运行的,也提示导入成功了,但右键还是没有
那卸载掉2.6.6,试试更新的版本,比如:中的:python-2.7.5.amd64.msi那你再自己去对应注册表中去确认一下,是否正常导入成功了。参考我当前正常的时候的效果是:
提问者评价
谢谢了,注册表打开按照你截图的格式改了下还是不行,下2.6.6是因为公司电脑上装的这个而版本
其他类似问题
按默认排序
其他2条回答
直接把python目录里的idle。不让你创建菜单。。办法2.py拖到你的桌面上办法3。可以搜索一下。你可以去掉后:手工修改注册表办法1。忘记怎么做了:安装sublime text2代替idle办法4。 还是办法1简单。我一直用这个办法。我以前似乎做过这样的尝试:一定要用超级用户安装。可能是被某些软件拦截了。通常会有.py文件执行中的注册表配置,重新安装一次
两个方法试下:直接进去安装目录内,就在你的安装目录Lib\idlelib里面的有一个叫做idle.bat的批处理文件,可以试一下看看是不是呢。也可以通过执行下面两行脚本:import sysprint sys.path查看一下详细的系统变量,会显示出来你的Python的一些变量的。新建一个*.py文件,右键点击 -& 打开方式 -& 选择默认程序 -& 浏览,找到并选择python.exe实在不行就重装
python的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁赶快加入吧
收藏,505 浏览
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
在一个没有安装Python的机器上如何通过Sublime text编辑器来运行Py代码呢?
比如实现pip什么的。
就是如何利用Sublime中的Python包来运行Py内容呢?
不知有没有那位大大能够实现这一功能呢~
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
1月16日 回答
像Sublime Text,或者别的什么编辑器(如atom),只是用来编辑Python的源代码的。
我不清楚你你讲的Sublime里的Python具体是什么,可能如楼上说的是语法高亮的配置。
Sublime或者atom,确实可以有一些插件可以实现脚本语言直接运行的功能,但前提都是你的机器上已经装了Python才行。
不要错过该问题的后续解决方案
如果你没找到答案,记得登录关注哦,大家会尽全力帮你解决的 ^___^
最专业的开发者社区
最前沿的技术问答,最纯粹的技术切磋。让你不知不觉中开拓眼界,提高技能,认识更多朋友。
分享到微博?
关闭理由:
删除理由:
忽略理由:
与已有问题重复
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
内容质量差,或不适合在本网站出现
无意义讨论型问题
其他原因(请补充说明)
举报理由:
带有人身攻击、辱骂、仇恨等违反条款的内容
与已有问题重复
内容质量差,或不适合在本网站出现
答非所问,不符合答题要求
其他原因(请补充说明)
补充说明:保存一个py文件后,再次打开idle就出现无法连接,即无法打开。删除random.py后可以使用。
我在linux下并没有遇到题主所说无法打开的问题,为此我还特意安装了一个gtk版的idle,暂时抛开终端尝试了一下。尽管没有遇到相同的问题,但仍然有必要说一下有关python脚本的命名(这应该是题主idle无法打开的根本原因)。正如楼上答主
提到的,python标准库也有一个叫做random的模块,如果你自己定义了一个模块也命名为random.py就有可能会造成冲突。为了理解这一点,有必要先了解一下python模块的导入机制:1. 从何处import?不知道你是否想过这样一个问题:当你在代码里写下 import random ,然后执行你的脚本的时候,python解释器是如何找到这个名叫random的模块,然后将它导入的呢?答案是:通过搜索sys.path先让我们看一眼官方文档是怎么描述sys.path 的:如果不喜欢看英文也没关系,提取出几个要点就可以:这是一个list,也就是列表,包涵了模块的搜索路径的字符串;初始内容来自于PYTHONPATH这个环境变量;path[0],即列表的第一个元素表示当前路径,它告诉python解释器首先从当前路径下搜索所需的模块;这个列表是可以人为修改的;看一个具体的例子:&&& import sys, pprint
&&& pprint.pprint(sys.path)
#pprint是为了更友好的输出sys.path的内容
'/usr/local/lib/python2.7/dist-packages/rsa-3.1.4-py2.7.egg',
'/usr/local/lib/python2.7/dist-packages/pyasn1-0.1.7-py2.7.egg',
'/usr/local/lib/python2.7/dist-packages/mysql_connector_python-1.2.3-py2.7.egg',
'/usr/local/lib/python2.7/dist-packages/SQLAlchemy-0.9.7-py2.7-linux-x86_64.egg',
'/usr/local/lib/python2.7/dist-packages/tornado-3.1-py2.7.egg',
'/usr/local/lib/python2.7/dist-packages/Markdown-2.5-py2.7.egg',
'/usr/local/lib/python2.7/dist-packages/pymongo-2.7.2-py2.7-linux-x86_64.egg',
'/usr/local/lib/python2.7/dist-packages/torndb-0.3-py2.7.egg',
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-linux2',
'/usr/lib/python2.7/lib-tk',
'/usr/lib/python2.7/lib-old',
'/usr/lib/python2.7/lib-dynload',
'/usr/local/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages/PIL',
'/usr/lib/python2.7/dist-packages/gst-0.10',
'/usr/lib/python2.7/dist-packages/gtk-2.0',
'/usr/lib/pymodules/python2.7',
'/usr/lib/python2.7/dist-packages/ubuntu-sso-client']
看到输出了一系列字符串形式的路径名称,这些就是python解释器将要搜索导入模块的位置。正如前面所说,其中大部分来自于PYTHONPATH,注意列表的第一个元素是一个空字符串,这是因为我直接启动了交互式解释器,而不是执行了某个脚本,它告诉解释器:要导入模块么?先看看当前目录下有木有吧?而如果我们在当前目录(我的是/home/chiyu)创建一个脚本,用来输出 sys.path ,如下:import sys, pprint
if __name__ == "__main__":
pprint.pprint(sys.path)
执行脚本:python test_sys_path.py
打印出的结果为:['/home/chiyu',
'/usr/local/lib/python2.7/dist-packages/rsa-3.1.4-py2.7.egg',
'/usr/local/lib/python2.7/dist-packages/pyasn1-0.1.7-py2.7.egg',
'/usr/local/lib/python2.7/dist-packages/mysql_connector_python-1.2.3-py2.7.egg',
'/usr/local/lib/python2.7/dist-packages/SQLAlchemy-0.9.7-py2.7-linux-x86_64.egg',
'/usr/local/lib/python2.7/dist-packages/tornado-3.1-py2.7.egg',
'/usr/local/lib/python2.7/dist-packages/Markdown-2.5-py2.7.egg',
'/usr/local/lib/python2.7/dist-packages/pymongo-2.7.2-py2.7-linux-x86_64.egg',
'/usr/local/lib/python2.7/dist-packages/torndb-0.3-py2.7.egg',
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-linux2',
'/usr/lib/python2.7/lib-tk',
'/usr/lib/python2.7/lib-old',
'/usr/lib/python2.7/lib-dynload',
'/usr/local/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages/PIL',
'/usr/lib/python2.7/dist-packages/gst-0.10',
'/usr/lib/python2.7/dist-packages/gtk-2.0',
'/usr/lib/pymodules/python2.7',
'/usr/lib/python2.7/dist-packages/ubuntu-sso-client']
可以看到,此时列表的第一个元素,已经从空字符串变成了当前脚本所在的目录'/home/chiyu'言归正传,铺垫了这么多,python解释器究竟是如何搜索到模块的呢?还是以导入random模块为栗子,当解释器执行代码到 import random 这一行时:首先,它在当前目录下搜索名叫random的模块,比如这里的'/home/chiyu' ;如果没有,它就会到列表中第二个元素表示的路径下进行搜索;如果仍然没有,则搜索第三个;...直到所有的路径都遍历完,仍然没有找到,就触发一个ImportError异常;其中任何一步找到了想要的模块,则停止,不再继续搜索&&& import wrong_module_name
Traceback (most recent call last):
File "&stdin&", line 1, in &module&
ImportError: No module named wrong_module_name
发现问题了么?没错,只要找到一个名称符合的模块就不再继续往下搜索,这会导致同名模块覆盖的问题。为了演示这个问题,我们再举一个简单的栗子:我在当前的工作目录(即 ‘/home/chiyu')下创建了一个名叫test_random.py的脚本:import random
if __name__ == "__main__":
print random.__doc__
简单得不能再简单的脚本:导入random模块,打印出random模块的文档字符串。运行这个脚本:python test_random.py
输出random的__doc__属性值:chiyu@chiyu-PC:~$ python test_random.py
Random variable generators.
uniform within range
pick random element
pick random sample
generate random permutation
distributions on the real line:
------------------------------
triangular
normal (Gaussian)
negative exponential
distributions on the circle (angles 0 to 2pi)
然后让我们在当前目录('\home\chiyu')下创建一个同名的random.py模块,内容只有一行文档字符串:"""
This is a fake random, created by ourselves.
现在再次执行test_random.py脚本,输出:chiyu@chiyu-PC:~$ python test_random.py
This is a fake random, created by ourselves.
可见,此时import进来的是我们自己定义的random模块,而不是python标准库中提供的模块。同名模块覆盖,比起一般的语法问题更难发现,给debug增加不必要的困难,所以,应该避免自己的模块名和标准库中的模块名重名。2. 本质是列表sys.path的本质是一个列表,而列表是可变的,你可以调用列表的绑定方法,给sys.path添加新的搜索路径:sys.path.append('/home/chiyu/new_dir')
这样,解释器就会将'/home/chiyu/new_dir'添加到sys.path列表的末尾,在import模块时,如果前面的路径下都没有搜索到,则会在新添加的路径下搜索。但需要注意的是,这种添加的方法仅仅是临时的,下一次启动交互式解释器的时候,sys.path又将回到之前的样子。如果要永久的添加某条搜索路径,可以通过修改环境变量的方法。3. 使用包(Package)管理自定义模块和java类似,python支持包机制,如自定义了很多功能模块,那么通过包将功能相似的多个模块组织起来是一种很好的习惯。这至少有两点好处:按照功能将模块划分,使得程序从整体上看,逻辑更加清晰,也方便日后模块的复用;包在一定程度上充当了“名称空间”的角色,导入模块时限定从某个包中导入某个模块,这样从一定程度上就避免了,因为和标准哭模块重名(尽管非常不推荐这么做)导致,使得导入的模块并非自己预期的模块;举例说明:我在当前目录下创建了一个名为randfuncs的包(实际上就是包涵了一个__init__.py文件的目录),包中定义了我们自己的random.py模块,和标准库的random模块重名,使用tree命令看一下包结构:chiyu@chiyu-PC:~$ tree randfuncs/
randfuncs/
├── __init__.py
└── random.py
0 directories, 2 files
注:__init__.py是一个空白文件,添加这个文件的目的是让python解释器以python包的角色对待这个目录,而不是把它当作普通的文件夹。这时,让我们打开python交互式解释器,直接import random:&&& import random
此时没有限定任何包名,导入的是标准库中的random模块,解释器会去搜索sys.path列表,找到它,然后导入到全局名称空间中来。输出它的doc string:&&& print random.__doc__
Random variable generators.
uniform within range
pick random element
pick random sample
generate random permutation
distributions on the real line:
------------------------------
triangular
normal (Gaussian)
negative exponential
让我们指定从自己的包中导入自定义的random模块:&&& from randfuncs import random
&&& print random.__doc__
This is a fake random module.
从这个random的doc string可以看出,此时导入的random模块,已经是我们自定义的那个random模块了。这就是包的“魔法”。实际上很多标准哭中的模块,也采用包作为其组织形式,例如处理xml的模块:chiyu@chiyu-PC:/usr/lib/python2.7$ tree xml
├── dom
#内层dom包
├── domreg.py
├── domreg.pyc
├── expatbuilder.py
├── expatbuilder.pyc
├── __init__.py
├── __init__.pyc
├── minicompat.py
├── minicompat.pyc
├── minidom.py
├── minidom.pyc
├── NodeFilter.py
├── NodeFilter.pyc
├── pulldom.py
├── pulldom.pyc
├── xmlbuilder.py
└── xmlbuilder.pyc
├── etree
#内层etree包
├── cElementTree.py
├── cElementTree.pyc
├── ElementInclude.py
├── ElementInclude.pyc
├── ElementPath.py
├── ElementPath.pyc
├── ElementTree.py
├── ElementTree.pyc
├── __init__.py
└── __init__.pyc
├── __init__.py
├── __init__.pyc
├── parsers
#内层parsers包
├── expat.py
├── expat.pyc
├── __init__.py
└── __init__.pyc
└── sax
#内层sax包
├── _exceptions.py
├── _exceptions.pyc
├── expatreader.py
├── expatreader.pyc
├── handler.py
├── handler.pyc
├── __init__.py
├── __init__.pyc
├── saxutils.py
├── saxutils.pyc
├── xmlreader.py
└── xmlreader.pyc
4 directories, 44 files
你可以通过from ... import ... 的方式导入特定的模块,或者特定模块中的类:&&& from xml.etree import ElementTree
&&& type(ElementTree)
&type 'module'&
&&& from xml.etree.ElementTree import ElementTree
&&& type(ElementTree)
&type 'type'&
与系统库random冲突
许多人选择编程是因为他们喜欢把时间花在一个公平有序、能者为王、靠代码说话的地方}

我要回帖

更多关于 python 引用py 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信