1

我在 Windows 上有两个版本的 Python,并希望通过cmd. 我试图制作它们的快捷方式python.exe并将它们重命名为python26and python33(我还将它们的位置添加到PATH),但不幸的是这不起作用。调用python26python26.lnk输出not recognized as an internal command.

有没有其他方法可以做到这一点(比如 Linux virtualenv),或者我错过了我的想法?

4

4 回答 4

5

在下创建一个新的 .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\PATHC:\imaginary_path\PATH

在那里,Windows 将 .bat 文件视为可执行文件,现在您可以python2 test.py 在每次按Ctrl+时调用 NowC您将收到询问“终止批处理作业?”的提示。这有点烦人,有一些替代方案可以解决这个问题,一个是你编辑你的 python2.bat 看起来像:

start C:\Python26\python.exe %*
于 2013-10-09T09:59:26.193 回答
3

正如其他人所提到的,创建批处理文件可以正常工作。但是,如果您仍想使用普通的快捷方式(.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:\>
于 2013-10-09T12:05:15.880 回答
0

您还可以使用 Windows 路径:

设置路径=C:\Python26;.;..;C:\windows;C:\windows\system32
提示 $ & 开始标题 Python26

将其保存为 Py26.bat 并在显示的屏幕中键入 Python

设置路径=C:\Python33;.;..;C:\windows;C:\windows\system32
提示 $ & 开始标题 Python33

将其保存为 Py33.bat 并在显示的屏幕中键入 Python

于 2013-10-09T11:57:38.607 回答
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 运行。

于 2013-11-13T22:03:44.473 回答