在MacOSX上为Eclipse安装多个Python版本
我想在我的电脑上安装多个版本的Python:2.1、2.4、2.7和3.x。
我的开发环境是Eclipse(Helios)和Pydev,运行在MacOSX上,效果很好。我有几个Python项目,它们会在不同版本的Python上运行。此外,我喜欢Eclipse PyDev能方便地从源代码跳转到文档。
大家普遍推荐的做法是:使用virtualenv,这样可以把不同的安装版本和Mac内置的Python(2.6.1)完全分开。Eclipse不应该指向MacPython的安装位置。(在这种环境下,PYTHONPATH应该设置吗?)
在我开始使用virtualenv之前,还有什么其他需要了解的吗?virtualenv不会增加额外负担,我也不需要担心偶尔听到的关于nose、coverage等工具可能出问题的评论吗?
我很想听听在MacOS上使用Eclipse或Pydev的用户的看法。
另外,如果有人有关于将Python代码从2.1迁移到2.7的其他建议,也欢迎分享。
4 个回答
来自Python的README文本文件
安装多个版本
在Unix和Mac系统上,如果你打算使用相同的安装路径来安装多个版本的Python(也就是在配置脚本中使用--prefix参数),你需要注意不要让你的主要Python执行文件被其他版本的安装覆盖。通过“make altinstall”安装的所有文件和目录都会包含主要和次要版本号,这样它们就可以并存。使用“make install”也会创建一个指向${prefix}/bin/pythonX.Y的文件,这个文件在${prefix}/bin/python中。如果你打算使用相同的路径安装多个版本,你需要决定哪个版本是你的“主要”版本。然后用“make install”安装这个版本,其他版本则用“make altinstall”安装。
举个例子,如果你想安装Python 2.5、2.6和3.0,并且希望2.6作为主要版本,你需要在2.6的构建目录中执行“make install”,而在其他版本的构建目录中执行“make altinstall”。
使用Virtualenv也是一个选择,但你可以考虑使用上面提到的选项,这似乎更简单。
如果你的系统已经安装了Home Brew,我推荐你使用pyenv。下面的信息大部分来自于这个快速安装和使用指南:
安装 pyenv 和 pyenv-virtualenv
打开你的终端,安装 pyenv 以及 Python 所需的外部库:
brew update brew install pyenv openssl readline sqlite3 xz zlib
在你的 shell 中添加
pyenv init
,以启用 shims 和自动补全,运行以下命令:echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bash_profile
安装 pyenv-virtualenv 插件,这样你就可以为每个 Python 版本创建虚拟环境:
git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile
重置你的终端以应用更改,运行
exec "$SHELL"
,或者直接关闭终端再打开一个新的。
获取不同的 Python 版本
我们可以用 pyenv install --list
来列出所有可用的版本:
pyenv install --list
Available versions:
2.7.15
3.0.1
..
3.7.2
要安装 Python 版本 3.7.2,可以运行:
pyenv install 3.7.2
使用 pyenv versions
可以查看你电脑上安装的所有 Python 版本:
root@Host ~$ pyenv versions
* 3.7.2
创建虚拟环境
在上一步中,我们下载了 Python 3.7.2 解释器,现在可以用它来创建一个独立的虚拟环境。这对软件开发非常有用,可以让每个项目完全隔离开来:
pyenv virtualenv 3.7.2 MY_VIRTUALENV_NAME
要列出你所有的虚拟环境,可以运行:
pyenv virtualenvs
要激活一个虚拟环境,可以运行:
pyenv activate MY_VIRTUALENV_NAME
要停用当前激活的虚拟环境,可以运行:
pyenv deactivate
一个不错的方法是使用macport来安装不同版本的Python。这样你就可以为你想要的所有Python版本安装不同版本的所有包。这些包会被安装在/opt/local/这个文件夹里。
在Eclipse中使用PyDev进行特定项目时,你可以右键点击项目名称,然后选择属性。在左侧,你选择PyDev - 解释器/语法。接着,点击点击这里配置未列出的解释器的链接。在新窗口的右上角点击新建。你需要输入你想为其创建解释器的Python版本的名称,前提是你已经通过macport安装了它和所有需要的包。在解释器可执行文件的字段中,你需要填写路径:/opt/local/bin/pythonX.X。
之后,在之前的选项窗口PyDev - 解释器/语法中,你可以在解释器菜单中选择你刚安装的Python版本。
对于命令行,默认路径指向/usr/bin/python,你必须使用python_select(通过macport安装)来设置,而不是去调整env变量。之后,你可以使用macport来更新或安装新包,确保一切保持干净。