【问题标题】:Multiple installs of Python on MacOSX for Eclipse在 MacOSX for Eclipse 上多次安装 Python
【发布时间】:2011-05-23 22:07:20
【问题描述】:

我想要多次安装 Python:2.1、2.4、2.7、3.x
我的 IDE 是 MacOSX 上的 Eclipse (Helios)/Pydev,效果很好。我有几个 Python 代码库正在/将在不同版本的 Python 上运行。另外,我喜欢 Eclipse PyDev 从源代码到文档的交叉链接。

标准建议似乎是:使用 virtualenv,并将安装与内置的 MacPython (2.6.1) 完全分开。 Eclipse 永远不应该指向 MacPython 安装。 (PYTHONPATH 甚至应该设置在这样的环境中吗?)

在我开始使用 virtualenv 之前,还有什么我应该知道的吗? virtualenv 不会强加任何开销,我不应该担心偶尔的 cmets 会损坏鼻子、覆盖等?

我很想听听使用 MacOS 的 Eclipse 或 Pydev 用户的意见。
另外,如果有人对从 2.1 -> 2.7 迁移 Python 代码库有其他提示。

【问题讨论】:

    标签: python macos pydev virtualenv python-2.x


    【解决方案1】:

    一个好的方法是使用macport 来安装不同版本的pythons。对于您想要的所有 python 版本,它将具有所有软件包的不同版本。它们将安装在 /opt/local/ 中。 因此,在带有 PyDev 的 Eclipse 中,您可以右键单击项目名称 -> 属性:在那里,在左侧选择 PyDev - Interpreter/Grammar。然后单击链接单击此处配置解释器而不是列表器。您点击新窗口右上角的 new。如果你已经通过 macport 安装了所有需要的包,你可以给出你想要为其创建解释器的 python 版本的名称。在 Interpreter Executable 字段中,您提供路径: /opt/local/bin/pythonX.X 。 之后,在上一个选项窗口:PyDev - Intepreter/Grammar,你可以在Interpreter菜单中选择你刚刚安装的python版本。

    对于 shell,以及指向 /usr/bin/python 的默认路径,您必须使用:python_select(通过 macport 安装)而不是玩 env 变量。之后你可以使用 macport 来更新/安装新的包,确保一切都是干净的。

    【讨论】:

    【解决方案2】:

    在你的系统中已经安装了Home Brew,我推荐你pyenv。以下大部分信息来自this quick installation/use guide:

    安装 pyenv + pyenv-virtualenv

    1. 转到您的终端并安装 pyenv 和 Python 所需的外部库:

      brew update
      brew install pyenv openssl readline sqlite3 xz zlib
      
    2. 将 pyenv init 添加到您的 shell 以启用 shims 和运行以下命令的自动补全:

      echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init -)"\nfi' >> ~/.bash_profile
      
    3. 安装 pyenv-virtualenv 插件,以便您可以为每个 Python 版本创建虚拟环境:

      git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
      echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile
      
    4. 重置您的终端以应用更改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 版本,您可以查看计算机中安装的所有 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
    

    【讨论】:

    • 如何配置 Eclipse 以使用这个 virtualenv?
    • 我认为它在Eclipse Settings -> PyDev -> Interpreters -> Python interpreter 内。然后添加相应的python二进制环境的路径,在mi示例中为~/.pyenv/versions/MY_VIRTUALENV_NAME/bin/python。但这取决于您安装 .pyenv 的位置。
    • 啊,PyDev。不幸的是,在我的情况下,我没有使用 PyDev,只需要 Eclipse 即可找到 pyenv(或至少在 pyenv 中找到正确的 Python 版本)。在我的情况下,我最终添加到PATH。
    【解决方案3】:

    来自python的README文本文件

    安装多个版本

    如果您愿意,可以在 Unix 和 Mac 系统上使用 安装多个版本的 Python 使用相同的安装前缀 (--prefix 参数到配置 脚本)你必须注意你的 主要的python可执行文件不是 通过安装一个覆盖 不同的版本。所有文件和 使用“make”安装的目录 altinstall" 包含主要和 次要版本,因此可以生活 并排。 “进行安装”也 创建 ${prefix}/bin/python 其中 指 ${prefix}/bin/pythonX.Y。如果 您打算安装多个 使用相同前缀的版本 必须决定哪个版本(如果有) 你的“主要”版本。安装那个 使用“make install”的版本。安装 所有其他版本使用“make altinstall”。

    例如,如果您要安装 Python 2.5、2.6 和 3.0,其中 2.6 主要版本,您将执行 在您的 2.6 版本中“进行安装” 目录和“make altinstall” 其他人。

    Virtualenv 是一个选项,但您可以使用上面提到的选项而不是看起来更简单的 venv。

    【讨论】:

    • 谢谢。除了破坏现有的安装之外,它还有更多的功能——MacOS 应该依赖于 MacPython (2.6.1) 的版本和库。我可能并不严格需要 venv,但我想放心,软件包永远不会安装在错误的位置 - 意见?
    • 我认为您应该尝试@Zenon 的建议,如果您还没有尝试过,请尝试 macports。
    【解决方案4】:

    就我个人而言,我使用conda 创建多个环境(大多数情况下,您创建一个新的环境,激活它并在其中安装所需的包——如果可能,使用conda 本身或pip,如果它不可用conda)。见:https://conda.io/docs/installation.html。

    创建环境后,您只需在 PyDev 中添加一个新的解释器,它指向创建的环境中的解释器。见:http://www.pydev.org/manual_101_interpreter.html.

    【讨论】:

      猜你喜欢
      • 2015-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-03
      • 2020-08-24
      • 2017-09-11
      • 2020-08-19
      相关资源
      最近更新 更多