27

我必须如何配置,以便我不必键入python script.py,而只需script.py在 Windows 上的 CMD 中输入?

我将我的 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 可以正确处理命令。

这里有什么问题?

4

4 回答 4

40
C:\> assoc .py=Python
C:\> ftype Python="C:\python27\python.exe %1 %*"

或者无论相关路径是什么 - 您也可以使用 ftype 设置命令行参数。


为了使命令被识别而不必提供后缀 ( .py),类似于它对.exe文件的工作方式,添加到(全局)变量.py的分号分隔列表中。PATHEXT

预计 2017-07-27

似乎这仍然吸引眼球,想为 Win10 用户提升一个有用的评论(来自@shadowrunner):

对我来说,让它在 Win10 下工作,实际命令是(注意引号的位置):

C:\> ftype Python="c:\Anaconda2\python.exe" "%1" %*

预计 2019-02-01

谈论常青树!

首先,如果您是新安装 Python,我强烈建议您查看 @NunoAndré 的答案。

其次,为了澄清最近评论中的某些内容,请注意:您必须同时执行两个部分 (assoc和),或者在命令ftype中使用预先存在的关联标签。ftype

默认情况下,至少对于 Windows 8.1 下的 Python 3.7,关联为.pyis Python.File,因此执行ftype我上面写的命令将无法正常工作,除非先更改关联。或者,您可以只使用ftype并提供默认关联。由你决定。

于 2012-07-13T14:59:10.483 回答
4

从 Python 3.3 开始,包括一个用于 Windows 的启动器:(py以及pyw用于 GUI 或非 UI 应用程序)

这有助于定位和执行不同的 Python 版本。它允许脚本(或命令行)指示对特定 Python 版本的偏好,并将定位并执行该版本。

与 PATH 变量不同,启动器将正确选择最合适的 Python 版本。它将更喜欢按用户安装而不是系统范围的安装,并按语言版本排序,而不是使用最近安装的版本。

默认情况下, Python 安装程序将 Python 的文件扩展名链接到open动词,因此您只需键入其名称(如果需要,还可以输入 args)即可运行 Python 文件。

警告:注意 python.exe 和 pythonw.exe 之间的区别


除其他优点外,Windows 启动器读取 'nix shebangs,因此您可以指定 Python 版本或python.exe'命令行参数

你可以检查这个运行这个脚本(假设 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按首选项排序的环境变量中来省略 Python 的扩展以在终端中运行文件。(您必须重新打开终端才能使更改生效)。

setx PATHEXT %PATHEXT%;.PYC;.PYZ;.PY

于 2018-06-16T12:29:06.727 回答
2

我也有同样的问题......我可以通过将 *.py 文件与 python 启动器重新关联来解决它。

  1. 右键单击 *.py 文件并打开其属性。
  2. 单击“打开方式...”部分的更改按钮
  3. 选择更多应用程序 -> 在此 PC 上查找其他应用程序。
  4. 然后浏览到您的 windows 文件夹(默认情况下:“C:\Windows”)
  5. 选择“py.exe”
于 2021-06-10T15:18:37.363 回答
1

我试过了:

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" %*
于 2020-07-20T20:56:11.023 回答