在Windows上使用virtualenv -p(以及virtualenvwrapper-win)管理多个Python版本

2 投票
3 回答
4616 浏览
提问于 2025-04-17 09:30

我想在Windows XP上使用多个版本的Python(我需要2.5和2.7,但如果能有3.2就更好了)。

我想用virtualenvwrapper-win,而不是用virtualenv -p。

这是在Unix系统上的方法:使用不同的Python版本和virtualenv

这个方法在virtualenvwrapper-win上也适用吗?mkvirtualenv的源代码似乎在第35行把参数传给了virtualenv:https://github.com/davidmarble/virtualenvwrapper-win/blob/master/scripts/mkvirtualenv.bat

我想问问有没有人做过这个(也想告诉其他人他们可以这样做),所以在尝试之前先问一下(这样就不会搞乱我的Python环境)。

如果你做过这个,有什么需要注意的地方吗?我可以用ActiveState的Python安装作为我的第二个Python版本吗?

3 个回答

0

我发现这个项目非常有用。

https://github.com/pyenv/pyenv

它可以自动安装和管理多个版本的Python。
比如,你可以安装Python 2.4.3、2.5.2和2.7.1。
这样你就可以在不同的Python版本之间切换,运行和测试你的Python应用。

它还有一些辅助脚本,
https://github.com/pyenv/pyenv-virtualenvwrapper
https://github.com/pyenv/pyenv-virtualenv

3

Virtualenvwrapper 这个工具会把命令行的参数直接传给 virtualenv。比如,使用 mkvirtualenv --python=c:/your/path/to/python2.5 命令,就可以用 Python 2.5 创建一个虚拟环境。我自己也用过很多次。

不过,有一点要注意,如果你能的话,尽量少在虚拟环境外面安装包,这样会省去很多麻烦。(其实你可以随时删除一个虚拟环境,这样比较简单,但在外面完全删除包或者更改路径就麻烦多了。)如果你有多个版本的 Python,可能会让 pip 和 easy_install 出现一些奇怪的问题。而在虚拟环境里,你就不用担心这些了。

使用 virtualenv 的话,你不需要担心搞乱你的 Python 环境,因为添加或删除虚拟环境都很简单。--python 这个参数可以和任何 Python 可执行文件一起使用(它只是会在虚拟环境里设置一套不同的脚本),所以在 ActiveState 上也能用。

0

关于安装多个版本的Python,我安装了ActiveState的Python 2.7和3.3。这两个版本安装在了C盘的不同文件夹里。

现在,2.7版本是默认的Python版本。你可以在命令行中通过输入python25来使用这个旧版本。

Python 3.3并没有设置为默认版本。而且,你需要使用完整的路径名来运行它,或者在安装时选择将它添加到系统路径中。

总的来说,使用ActiveState安装多个版本的Python还是挺简单的。

关于虚拟环境(virtualenv):

Python 2.7:在使用pip时遇到了一些问题,pip没有安装。通过在虚拟环境中运行“easy_install pip”似乎可以解决这个问题。

Python 3.3:在使用mkvirtualenv命令时出现了问题:这会导致Python崩溃!我没有继续研究这个问题,因为我现在不需要它(但如果有人知道问题和解决办法,那就太好了!)

2013年10月13日更新:我需要在Python 2.7环境中重新安装virtualenvwrapper-win。之后,Python 2.7的虚拟环境就正常工作了。

撰写回答