在Windows上设置Python不在cmd中键入“python”

时间:2012-07-13 14:47:08

标签: python windows path cmd

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

这里有什么问题?

4 个答案:

答案 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é的答案。

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

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

答案 1 :(得分:3)

从Python 3.3中包含launcher for Windowspy(和pyw用于GUI或非UI应用程序)

  

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

     

与PATH变量不同,启动器将正确选择最合适的Python版本。它更倾向于按用户安装,而不是系统版本,而不是使用最新安装的版本。

Python安装程序默认将Python的文件扩展名链接到open谓词,因此只需输入其名称(如果需要,可以运行args)来运行python文件。

警告: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更改此默认关联,但我强烈建议:

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

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

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

答案 2 :(得分:1)

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

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

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