在Windows上运行Python脚本时不需要指定“.py”扩展名

29
我想要在包含Python脚本的文件夹中打开命令提示符,只需键入脚本名称而不需要“.py”扩展名,就可以运行它。
根据谷歌上的各种提示,我做了以下操作:
  1. 将python.exe添加到我的路径
  2. 将.py添加到PATHEXT
  3. 尝试在Windows资源管理器中打开.py文件。当提示“使用哪个程序打开此文件?”时,我导航到my python.exe。
应该出现将python.exe添加到“打开方式”弹窗中,但没有出现?我再次使用不在路径中的python.exe。同样的问题。
请注意,每次设置路径都是在控制面板中进行的。 Python版本为2.7。更奇怪的是,我可以将.py程序与pythonw关联起来,但这没有用,因为我想要控制台。
非常感谢您的任何帮助。

当执行此操作时,幕后究竟发生了什么?应该可以从 Powershell 命令行中执行此操作... - not2qubit
4个回答

43

按照之前提到的方法,在PATHEXT中添加.PY

然后执行:

assoc .py=Python.File
ftype Python.File=c:\Python27\python.exe "%1" %*

在命令提示符或双击资源管理器中执行脚本时,将Python添加到路径中并不是必需的,只有当您想要启动交互式Python会话或使用 python yourscript.py 运行脚本时才需要添加。

更多细节请参考http://docs.python.org/2/using/windows.html


3
如果您安装了多个 Python 版本(例如 2.7.x 和 3.4),您可能希望使用 ftype Python.File="C:\Windows\py.exe" "%1" %* - martineau

13

修改 PATHEXT 变量以包括 Python 脚本。例如,这是我的:

PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY

您可以每次打开命令行控制台都执行此操作,或者只需修改您的用户全局环境变量,以便 cmd.exe 的每个实例都包含它。


Python非常有趣。 - musicman

1

0

我尝试从file.py文件名中删除.py扩展名,然后运行命令python file。Python可以理解没有扩展名的单个文件的代码,但如果您使用模块,则需要使用.py扩展名。否则,您可以将.py添加到环境变量中的路径文本中并运行

assoc .py=Python.File

ftype Python.File=c:\path to \python.exe "%1" %*


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接