在Windows上使用virtualenv -p(以及virtualenvwrapper-win)管理多个Python版本
我想在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 个回答
我发现这个项目非常有用。
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
Virtualenvwrapper 这个工具会把命令行的参数直接传给 virtualenv。比如,使用 mkvirtualenv --python=c:/your/path/to/python2.5
命令,就可以用 Python 2.5 创建一个虚拟环境。我自己也用过很多次。
不过,有一点要注意,如果你能的话,尽量少在虚拟环境外面安装包,这样会省去很多麻烦。(其实你可以随时删除一个虚拟环境,这样比较简单,但在外面完全删除包或者更改路径就麻烦多了。)如果你有多个版本的 Python,可能会让 pip 和 easy_install 出现一些奇怪的问题。而在虚拟环境里,你就不用担心这些了。
使用 virtualenv 的话,你不需要担心搞乱你的 Python 环境,因为添加或删除虚拟环境都很简单。--python 这个参数可以和任何 Python 可执行文件一起使用(它只是会在虚拟环境里设置一套不同的脚本),所以在 ActiveState 上也能用。
关于安装多个版本的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的虚拟环境就正常工作了。