【问题标题】:Set up Python on Windows to not type "python" in cmd在 Windows 上设置 Python 以不在 cmd 中键入“python”
【发布时间】:2012-07-13 10:38:27
【问题描述】:

如何进行配置,这样我就不必在 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 可以正确处理命令。

这里有什么问题?

【问题讨论】:

标签: python windows path cmd


【解决方案1】:
C:\> assoc .py=Python
C:\> ftype Python="C:\python27\python.exe %1 %*"

或任何相关路径 - 您也可以使用 ftype 设置命令行参数。


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

预计到达时间 2017-07-27

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

为了让我在 Win10 下工作,实际的命令是(注意引号的位置):

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

预计到达时间 2019-02-01

谈论常青树!

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

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

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

【讨论】:

  • 非常感谢!在今天之前我从不知道assocftype
  • 我也没有。:) 但我还需要一个评论权限的投票,所以我去了 Windows 文档。
  • 就是这样!谢谢。我在这里发现了同样的情况:docs.python.org/faq/…
  • 为了让我在 Win10 下工作,实际命令是(注意引号的位置):C:\&gt; ftype Python="c:\Anaconda2\python.exe" "%1" %*
  • 1) 我可以直接从 cmd 行执行 .py 文件(不显式使用 python.exe),即使 .py 不在关联中。 (我不知道这是怎么做到的。)唯一的问题是我不能使用参数! 2) 上面给出的解决方案——我试过了——并没有改变任何东西。 3)“您还可以使用 ftype 设置命令行参数”是什么意思?如何?例子? (我真的很想知道,因为参数是动态的,而 'ftype' 是静态的。
【解决方案2】:

从 Python 3.3 开始,包含 launcher for Windowspy(以及用于 GUI 或非 UI 应用程序的 pyw

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

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

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

警告:be aware of the differences between python.exe and pythonw.exe


除其他优点外,Windows 启动器读取 'nix shebangs,因此您可以指定 Python 版本或python.exe'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 更改此默认关联,但我强烈建议:

您可以轻松地将其他动词(如edittestdebug...)与这些文件相关联。


此外,您可以省略 Python 的扩展以在终端中运行文件,方法是将它们添加到按首选项排序的 PATHEXT 环境变量中。 (您必须重新打开终端才能使更改生效)。

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

【讨论】:

  • 我在 Windows 10 上遇到问题,在终端中运行 myscript.py 会导致 VS Code 打开!。如何重置?
【解决方案3】:

我试过了:

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" %*

【讨论】:

    【解决方案4】:

    我也遇到了同样的问题... 我可以通过将 *.py 文件与 python 启动器重新关联来修复它。

    1. 右键单击 *.py 文件并打开其属性。
    2. 点击“打开方式...”部分的更改按钮
    3. 选择更多应用 -> 在这台电脑上寻找其他应用。
    4. 然后浏览到您的 windows 文件夹(默认情况下:“C:\Windows”)
    5. 选择“py.exe”

    【讨论】:

    • 与公认的答案相比,这种方法具有额外的优势:它将考虑 Python 脚本的 shebang 行,因此选择正确的 Python 解释器以防万一,例如正在使用的虚拟环境。
    猜你喜欢
    • 2020-05-07
    • 1970-01-01
    • 2010-10-01
    • 1970-01-01
    • 2022-10-05
    • 2016-05-21
    • 2015-07-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多