我在Windows上有两个版本的Python,并希望通过cmd
使用它们。我尝试制作python.exe
的快捷方式并将其重命名为python26
和python33
(我还将其位置添加到PATH
),但不幸的是,这不起作用。在python26
中调用python26.lnk
或not recognized as an internal command
输出。
还有其他办法吗(比如Linux virtualenv),或者我错过了一些想法?
答案 0 :(得分:4)
在C:\imagaginary_path\
下创建一个新的.bat文件,并将其命名为python2.bat
在bat文件中写:
C:\Python26\python.exe %*
然后在C:\imagaginary_path\
下创建另一个并将其命名为python3.bat
内容如下:
C:\Python33\python.exe %*
现在从C:\Python26\
移除C:\Python33\
和PATH
,然后将C:\imaginary_path\
放在PATH
变量中。
在那里,Windows将.bat文件视为可执行文件,现在您可以调用python2 test.py
现在,每次按 Ctrl + C 您将收到一条要求“终止批处理作业?”的promt。这有点烦人,有一些替代方案可以解决这个问题,一个是你编辑你的python2.bat看起来像:
start C:\Python26\python.exe %*
答案 1 :(得分:2)
正如其他人所提到的,创建批处理文件可以正常工作。但是,如果您仍想使用常规快捷方式(.lnk
文件),则可以修改PATHEXT
环境变量以包含.LNK
。此变量告诉Windows在搜索PATH
变量时将哪些扩展名视为可执行文件。
例如,在创建快捷方式并将其文件夹添加到PATH
后,可以使用:
C:\>python27
'python27' is not recognized as an internal or external command,
operable program or batch file.
C:\>echo %PATHEXT%
.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
C:\>set PATHEXT=%PATHEXT%;.LNK
C:\>python27
Python 2.7.5 (default, May 15 2013, 22:43:36) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> ^Z
C:\>
答案 2 :(得分:0)
您也可以使用Windows路径:
set path=C:\Python26;.;..;C:\windows;C:\windows\system32 prompt $ & start title Python26
将其保存为Py26.bat并在显示的屏幕中键入Python
set path=C:\Python33;.;..;C:\windows;C:\windows\system32 prompt $ & start title Python33
将其保存为Py33.bat并在显示的屏幕中键入Python
答案 3 :(得分:0)
您可以做的是更改python.exe本身的名称,而不是创建快捷方式。
所以你可以将C:\ Python26 \中的python.exe重命名为'python2',将C:\ Python33 \中的python.exe重命名为'python3'。鉴于目前大多数Python代码都在< Python3,一个有效的替代方案是将Python 3.3 python.exe文件更改为'python3',并保持Python 2.6不变。这样,您就可以指定是否要使用python3运行某些内容。
现在编辑%PATH%环境变量以包含C:\ Python26 \和C:\ Python33。
示例:
python3 chunky_bacon_FTW.py
将使用Python3.3运行。