为什么python和py命令运行不同的python 3版本?

时间:2017-09-03 19:10:01

标签: python django windows python-3.x

我已使用django命令(pip)安装了pip install Django,但我无法使用py命令运行它,因为它无法找到该模块。 我只能使用' python'命令。

以下是我已经附上的截图摘要

$ python --version
Python 3.6.1
$ py --version
Python 3.6.0

看起来django只适用于3.6.1。

有没有办法设置这两个命令来运行最新版本的python?

截图:

screen

2 个答案:

答案 0 :(得分:2)

执行py时,您正在使用Python launcher for Windows。您可以具体说明您希望py使用此命令执行哪个Python解释器版本:

> py -3.6

参见PEP 397的本节: Python Version Qualifiers

  

如果在命令中找不到版本限定符,则为环境   变量PY_PYTHON可以设置为指定默认版本限定符   -默认值为“2”。请注意,此值可以仅指定主要版本(例如“2”)或major.minor限定符(例如“2.6”),甚至   major.minor-32

     

如果未找到次要版本限定符,则为环境变量   PY_PYTHON{major}(其中{major}是当前的主要版本限定符   如上所确定)可以设置为指定完整版本。如果不   找到这样的选项后,启动器将枚举已安装的Python   版本并使用主要版本的最新次要版本,   虽然不能保证,但最近才有可能   在该系列中安装了该版本。

     

除环境变量外,可以进行相同的设置   在启动程序使用的.INI文件中配置。中的部分   INI文件名为[defaults],密钥名称将与   没有前导PY_ prefix的环境变量(请注意   INI文件中的键名不区分大小写。)。的内容   环境变量将覆盖INI中指定的内容   文件。

Plus Python启动器不仅限于启动不同的Python版本,它还解析源代码文件中的shebang #!,提供类似于Windows中* nix操作系统的功能。

*请参阅Python Launcher for Windows文档。

答案 1 :(得分:1)

在Windows上,py是存储在C:\ Windows文件夹中的可执行文件。老实说我不知道​​它包含什么,因为我已经习惯了它在linux上的符号链接,而我的windows安装显示正常的python可执行文件只是py的大小的一小部分,尽管我很确定它们指向相同的安装。无论如何,您可以通过从Windows文件夹中删除或重命名(python.bak等)您不想继续使用的可执行文件来修复您的问题,然后复制您想要的那个并将其重命名为您的名称以前删除或重命名。我无法想象这是解决这个问题的官方方法,但这会奏效。此外,将来,如果你想确定你正在使用哪个安装而不是只运行任何点到pip,请随意用pip明确指定要安装的版本:

py -m pip install packagename
python -m pip install packagename

在同一系统上遇到多个python版本的问题在Windows中很常见,因此设置虚拟环境可能会有所帮助。这在Django Windows install how-to

中有解释