背景

背景

我在 Windows 7 计算机上安装了多个版本的 Python。

我想默认运行 Python 2.7,但不知何故,python在命令行中输入会运行 Python 版本 2.4.5。我尝试C:\Python27按照以下方法将其添加到系统路径变量中:这个问题,并手动梳理了我的路径变量,以确保 Python 2.4.5 没有被错误地扔进去,但这并没有解决问题。C:\Python27\python.exe每次我想访问我想要的正确版本的 Python 时,我都必须输入。

我还可以检查哪些地方?如何让命令行使用正确版本的 python?

我还发现但它不适用于 Windows。

[编辑]
我的路径(以分号分隔):

C:\Program Files\Common Files\Microsoft Shared\Windows Live;
C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;
C:\Windows\system32;
C:\Windows;
C:\Windows\System32\Wbem;
C:\Windows\System32\WindowsPowerShell\v1.0\;
C:\Program Files\Dell\DW WLAN Card\Driver;
C:\Program Files (x86)\Common Files\Roxio Shared\DLLShared\;
C:\Program Files (x86)\Windows Live\Shared;
c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;
c:\Program Files\Microsoft SQL Server\100\Tools\Binn\;
c:\Program Files\Microsoft SQL Server\100\DTS\Binn\;
C:\Program Files\TortoiseGit\bin;
C:\Program Files\Java\jdk1.6.0_26\bin;
C:\Program Files\Java\jdk1.6.0_21 ;
C:\Program Files\IVI Foundation\VISA\Win64\Bin\;
C:\Program Files (x86)\IVI Foundation\VISA\WinNT\Bin\;
C:\Program Files (x86)\IVI Foundation\VISA\WinNT\Bin;
C:\Program Files\WPIJavaCV\OpenCV_2.2.0\bin;
C:\Program Files (x86)\LilyPond\usr\bin;
C:\Program Files\TortoiseSVN\bin;
C:\Program Files (x86)\doxygen\bin;
C:\Program Files (x86)\Graphviz 2.28\bin;
C:\Users\Michael\bin\Misc\cppcheck\;
C:\Program Files (x86)\Git\cmd;
C:\Python27\python.exe;
C:\Ruby192\bin;
C:\Users\Michael\AppData\Roaming\cabal\bin;
C:\Python27\; 

[编辑2]
跑步时python会吐出这些:

'import site' failed; used -v for traceback
Python 2.4.5 (#1, Jul 22 2011, 02:01:04)
[GCC 4.1.1] on mingw32
Type "help", "copyright", "credits" or "license" for more information.
>>> 

...并且运行python --version(如下所示)似乎是一个无法识别的选项。

(我也尝试运行python -v,看起来 Python 2.4 正在尝试从 导入库C:\Python27\Lib,并且在遇到语句时由于语法错误而失败with,我认为这是在后来的版本中添加的)

另外,我不确定这是否重要,但是上面的 python 版本提到了一些有关 GCC 和 mingw32 的内容,运行时C:\python27\python.exe显示了以下内容:

Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>> 

答案1

当你处于 Python 2.4.5 会话中时,使用以下命令找到被拾取的 Python.exe:

import sys
print sys.executable

如果您想要使用多个版本,则不能依赖 %PATH%。相反,您可以创建单独的批处理文件来调用所需的版本(但请确保批处理文件本身位于 PATH 上)。例如,对于 2.7.2,您可以创建一个 PY27.BAT,其中只包含以下内容:

@C:\Python27\Python.exe $*

答案2

您需要在注册表编辑器中更新 .py 扩展名。搜索“.py”扩展名并查看 (Default) 键指向的内容。它可能位于:

HKEY_CLASSES_ROOT/.py/(Default)

该键的“数据”可能是“Python.File”(见下面的截图)。 在此处输入图片描述

使用这个来查找第二个键:

HKEY_CLASSES_ROOT/<previous_keys_data>/shell/open/command/@default
e.g.
HKEY_CLASSES_ROOT/Python.File/shell/open/command/@default

(Default) 键包含将要使用的 Python 解释器的路径。根据需要更新它以指向您要使用的那个。(见屏幕截图) 在此处输入图片描述

背景

如果您实际指定了 python 可执行文件,则命令行上选择的 Python 解释器仅使用 PATH 环境变量。即

python myProgram.py

即使不实际包含“python”,命令 shell 也会尝试找到一个程序来打开 .py 文件(上面的第一个键)。

然后它将使用这个密钥来找到合适的程序(第二个密钥)。

正如 @efotinis 所说,您可以使用简单的程序确定正在使用的解释器:

import sys
print sys.executable

尝试使用以下两种方式执行此操作,以查看使用 PATH 查找指定的可执行文件和使用命令解释器查找程序来打开指定的 .py 文件之间的区别。

python myProgram.py
myProgram.py

答案3

发帖是因为这个帖子得到了最多的结果,而我没有看到这个答案。这个简单的解决方案在 Windows 7 上对我有用。您需要查看系统变量中的 Path 变量。1 echo %PATH%似乎没有按顺序打印它们,因此请使用以下命令查看和编辑它们:

在 Windows 菜单 ‣ 属性 ‣ 高级系统设置 ‣ 高级选项卡 ‣ 环境变量按钮 ‣ 中右键单击我的电脑,检查系统变量,在系统变量下选择路径 ‣ 编辑按钮

这将打开一个编辑窗口Path。如果您安装了多个版本的 Python,请确保要用作默认版本的版本位于列表的第一个。例如,如果您希望 Python 2.7 成为默认版本,则应将其列在其他版本之前。

我的看起来像这样: C:\Python27\;C:\Program Files (x86)\Python35-32\;

为了确认它有效,请重新启动并打开 cmd 提示符。然后运行 python -V

现在它输出Python 2.7.11并运行仅依赖于python命令的脚本似乎正在使用此版本。

答案4

我遇到了这个问题,但它发生在我安装 Anaconda 之后。它会忽略路径并始终启动与 Anaconda 一起安装的 python 版本。我卸载了 Anaconda,它遵守了该路径。

相关内容