【发布时间】:2016-10-04 04:58:45
【问题描述】:
我刚刚在一个也有 python 2.7 的 win7 操作系统上安装了 python 3.5.1。在 Powershell 中输入“python”现在会启动 3.5.1。之前发布的是 2.7。
我现在如何启动 python 2.7?键入“python27”或“Python27”、“python2.7”、“Python2.7”不会这样做。我确实有“C:\Python;”在我的用户环境变量中。
阅读此讨论后:Python 2 and 3 from Powershell 和参考的文章: http://windowsitpro.com/powershell/take-charge-environment-variables-powershell
我是否正确,Powershell 只能做一个或另一个,即如果我想在 Powerhell 中使用 2.7,我必须激活和停用它?
有没有一种方法可以简单地输入“python27”来启动 2.7?
如果有帮助,这是我的用户 env PATH:
C:\Users\patrick\AppData\Local\Programs\Python\Python35-32\Scripts\;
C:\Users\patrick\AppData\Local\Programs\Python\Python35-32\;
C:\ProgramData\Oracle\Java\javapath;
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 (x86)\Windows Live\Shared;
C:\Program Files (x86)\Common Files\Roxio Shared\DLLShared\;
C:\Program Files (x86)\Common Files\Roxio Shared\12.0\DLLShared\;
C:\Program Files\WIDCOMM\Bluetooth Software\;
C:\Program Files\WIDCOMM\Bluetooth Software\syswow64;
C:\Program Files (x86)\QuickTime\QTSystem\;
C:\Program Files (x86)\Skype\Phone\;
C:\Program Files\MATLAB\R2015b\bin;
C:\ffmpeg\bin;
C:\Python27;
C:\SQLite3
【问题讨论】:
-
来自 32 位 Python 3.5 安装的 python.exe 位于第二个
PATH条目中,而来自 Python 2.7 的 python.exe 位于倒数第二个条目中。您可以使用py -2运行 Python 2.7,或者手动修改您的系统和用户PATH值以优先考虑 2.7 而不是 3.5。请注意,当您登录时,每个用户的值会连接到系统值的末尾。 -
另外,您有一个冗余且损坏的 PowerShell 条目(第三个条目),您可以将其删除。
-
你可以尝试导航到2.7的安装目录,然后通过cmd执行。
-
核心Windows开发者一直反对使用python2.exe、python2.7.exe等,所以这不会发生。但是,如果您更喜欢使用 py.exe,您可以自己制作这些副本。但是请保留与 py.exe 关联的脚本,因为它处理 shebangs(包括虚拟脚本,例如
#!/usr/bin/python3)。 -
PowerShell 不在当前目录中搜索可执行文件。如果您设置环境变量
NoDefaultCurrentDirectoryInExePath,cmd 也不会。这就是为什么它是.\idle而不是idle。但实际上没有必要使用批处理文件。您可以使用pyw -3 -m idlelib。对于 Python 2,请使用pyw -2 -m idlelib.idle;您必须运行 idle.py 脚本,因为 Python 2 无法识别__main__.py脚本。
标签: python windows python-2.7 powershell