如何进行配置,以便我不必在Windows上的CMD中键入python script.py
而只需键入script.py
?
我将我的python目录添加到包含python.exe的%PATH%但仍然无法正确运行脚本。
我用django-admin.py尝试了它运行django-admin.py startproject mysite
给我
Type 'django-admin.py help <subcommand>' for help on a specific subcommand.
在它前面使用python正确处理命令。
这里有什么问题?
答案 0 :(得分:29)
C:\> assoc .py=Python
C:\> ftype Python="C:\python27\python.exe %1 %*"
或者无论相关路径是什么 - 您还可以使用ftype设置命令行参数。
为了在不必给出后缀(.py
)的情况下识别命令,类似于.exe
文件的工作方式,将.py
添加到分号分隔列表中(全局)PATHEXT
变量。
ETA 2017-07-27
似乎这仍然是眼球,想要为Win10用户提升一个有用的评论(来自@shadowrunner):
让我在Win10下运行它的实际命令是(注意引号的位置):
C:\> ftype Python="c:\Anaconda2\python.exe" "%1" %*
ETA 2019-02-01
谈论常青树!
首先,如果您刚安装Python,我强烈建议您查看@NunoAndré的答案。
其次,要澄清最近评论中的内容,请注意:您必须同时执行这两个部分(assoc
和ftype
),或使用ftype
中预先存在的关联标签命令。
默认情况下,至少对于Windows 8.1下的Python 3.7,.py
的关联是Python.File
,因此执行上面编写的ftype
命令将无法正常工作,除非关联是先改变了或者您可以使用ftype
并提供默认关联。由你决定。
答案 1 :(得分:3)
从Python 3.3中包含launcher for Windows:py
(和pyw
用于GUI或非UI应用程序)
有助于定位和执行不同的Python版本。它允许脚本(或命令行)指示特定Python版本的首选项,并将定位并执行该版本。
与PATH变量不同,启动器将正确选择最合适的Python版本。它更倾向于按用户安装,而不是系统版本,而不是使用最新安装的版本。
Python安装程序默认将Python的文件扩展名链接到open
谓词,因此只需输入其名称(如果需要,可以运行args)来运行python文件。
py
:.py
,.pyc
和.pyo
(byte-compiled)和.pyz
(zip-compressed)。pyw
:.pyw
和.pyzw
(压缩缩放)。警告:be aware of the differences between python.exe and pythonw.exe
除了其他优点之外,Windows启动程序会读取&nbsp shebangs,因此您可以指定Python版本或python.exe
&#39; s command line arguments
你可以检查这个运行这个脚本(假设py3是默认的):
#! /usr/bin/python2.7 -i
import sys
print(sys.version)
myscript.py
:使用py
运行,启动python2.7
并在完成后进入交互模式(-i
,这是测试和调试的绝佳选择)。myscript.py -3
:使用py
运行,启动python3
并保持互动模式。python myscript.py
:使用默认的python运行时运行,没有交互模式。您可以使用ftype
更改此默认关联,但我强烈建议:
您可以轻松地将其他动词(例如edit
,test
,debug
...)与这些文件相关联。
此外,您可以省略Python的扩展,通过将它们添加到按优先级排序的PATHEXT
环境变量来在终端中运行文件。 (您必须重新打开终端才能使更改生效)。
setx PATHEXT %PATHEXT%;.PYC;.PYZ;.PY
答案 2 :(得分:1)
我也遇到了同样的问题... 我们可以通过将 *.py 文件与 python 启动器重新关联来修复它。
答案 3 :(得分:0)
我尝试了:
C:\> assoc .py=Python
C:\> ftype Python="C:\tools\python\python.exe %1 %*"
对我没用。所以我做了一个ftype搜索:
ftype | find "Python"
Python="c:\tools\python\python.exe" %1 %*
Python.ArchiveFile="C:\Windows\py.exe" "%L" %*
Python.NoConArchiveFile="C:\Windows\pyw.exe" "%L" %*
使用稍微其他的ftype命令解决了我的问题:
ftype Python="c:\tools\python\python.exe" "%L" %*