我在 Windows 上有两个版本的 Python,并希望通过cmd
. 我试图制作它们的快捷方式python.exe
并将它们重命名为python26
and python33
(我还将它们的位置添加到PATH
),但不幸的是这不起作用。调用python26
或python26.lnk
输出not recognized as an internal command
.
有没有其他方法可以做到这一点(比如 Linux virtualenv),或者我错过了我的想法?
在下创建一个新的 .bat 文件C:\imagaginary_path\
并将其命名python2.bat
。
在 bat 文件中写入:
C:\Python26\python.exe %*
然后在下创建另一个C:\imagaginary_path\
并命名它python3.bat
。
随着内容:
C:\Python33\python.exe %*
现在从您的and 中删除C:\Python26\
and ,而不是放在您的变量中。C:\Python33\
PATH
C:\imaginary_path\
PATH
在那里,Windows 将 .bat 文件视为可执行文件,现在您可以python2 test.py
在每次按Ctrl+时调用 NowC您将收到询问“终止批处理作业?”的提示。这有点烦人,有一些替代方案可以解决这个问题,一个是你编辑你的 python2.bat 看起来像:
start C:\Python26\python.exe %*
正如其他人所提到的,创建批处理文件可以正常工作。但是,如果您仍想使用普通的快捷方式(.lnk
文件),您可以将PATHEXT
环境变量修改为 include .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:\>
您还可以使用 Windows 路径:
设置路径=C:\Python26;.;..;C:\windows;C:\windows\system32 提示 $ & 开始标题 Python26
将其保存为 Py26.bat 并在显示的屏幕中键入 Python
设置路径=C:\Python33;.;..;C:\windows;C:\windows\system32 提示 $ & 开始标题 Python33
将其保存为 Py33.bat 并在显示的屏幕中键入 Python
您可以做的是更改 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 运行。