无法在Win7上将python.exe设置为* .py脚本

时间:2015-03-24 09:42:08

标签: python windows python-2.7

我已经在Win7(64位)的PC上安装了py 2.7(64位)而没有问题,但我无法通过DOS shell运行* .py脚本而无需声明python完整路径。 让我更好地解释一下:

如果我键入D:\ myscript.py它不起作用。脚本是用wordpad打开的 如果我输入D:\ C:\ Python27 myscript.py它可以正常运行

我尝试通过Win7 GUI(控制面板等)更改* .py文件的默认应用程序软件,但没有成功。 Python不存在于可用sw的列表中,并且在任何情况下也与手册集相关,我无法将* .py文件中的python.exe关联。

我已经检查了我的环境变量但是我没有发现问题(在Path = C:\ Python27 \; C:\ Python27 \ Scripts中)声明了python路径。

我还尝试修改HKEY_CLASSES_ROOT-> Applications-> python.exe-> shell-> open->命令: 旧的寄存器值“C:\ Python27 \ python.exe”“%1” 新的寄存器值“C:\ Python27 \ python.exe”“%1”%*

没有成功。

有什么建议吗?

由于

6 个答案:

答案 0 :(得分:2)

这是另一项检查,它帮助我弄清楚发生了什么。

我从32位Anaconda切换到64位版本。我卸载,下载然后重新安装,但有些东西没有得到正确清理(快速启动的东西,以及一些注册表项)。我这方面的问题是默认安装路径已从C:\Anaconda更改为C:\Anaconda2

我首先尝试了assocftype技巧,一切都很好。但是,HKEY_CLASSES_ROOT\Applications\python.exe\shell\open\command注册表项指向旧的Anaconda路径。一旦我解决了这个问题,当我尝试与&#34打开时,python.exe就出现了;用"一切都恢复正常。

我还在注册表项的末尾添加了%*

答案 1 :(得分:0)

在DOS下运行myscript.py。你需要输入

python myscript.py

(假设您已经在myscript.py所在的目录中)

答案 2 :(得分:0)

您是否知道当您更改文件的默认应用程序时,您可以浏览该应用程序?

您可以点击"浏览"按钮(如红色矩形所示),然后选择C:\ Python27 \ python.exe。

还要记得单击"始终使用此程序打开此程序"复选框,显示在绿色矩形中,以便win7知道下次要求它打开* .py文件时如何打开此文件。

然后我相信你只需键入" myScript.py"就可以运行myScript.py。在DOS shell中正确的目录。

enter image description here

完成上述所有步骤后,请务必重新打开新的命令shell。

答案 3 :(得分:0)

您可以尝试在CMD中使用ASSOCIATE命令:

ASSOCIATE .py C:\PathTo\python.exe

http://ss64.com/nt/associate.html

的更多信息

答案 4 :(得分:0)

@slv的回答很好,并且对解决这个问题有所帮助。无论如何,由于在发生此错误之前我已经安装过Python,所以我可能必须为此添加一些内容。因此,主要问题之一是我的python安装目录已更改。

因此,我打开了regedit.exe,并按照以下步骤进行操作:

  1. 我在整个注册表中搜索了.py.pyw.pyx.pyc(希望我在这里没有忘记提及任何内容)。然后,我从根本上删除了所有可以发现的东西。

  2. 我在整个注册表中搜索了我的 old python安装路径(例如C:\Users\Desktop\Anaconda3)。然后,我用新的安装路径(例如C:\Users\Desktop\Miniconda3)替换了该路径。因此,我也遇到并替换了@slv提到的HKEY_CLASSES_ROOT\Applications\python.exe\shell\open\command

然后,可以再次将.py菜单中的Open with...文件与我的python.exe连接起来。

答案 5 :(得分:-1)

* .py文件是源代码文件。如果正确设置系统环境,则需要运行python myscript.py

以下答案与您的问题有关 Making Python scripts run on Windows without specifying ".py" extension