【问题标题】:Managing multiple Python versions on OSX在 OSX 上管理多个 Python 版本
【发布时间】:2017-11-02 18:58:32
【问题描述】:

如果我已经通过 brew 安装了 Python 3,那么管理多个 Python 安装(长期)的最佳方式是什么?过去 Python 版本安装在这里、那里和任何地方,因为我使用不同的工具来安装各种更新。可以想象,这最终成为了一个问题。

我曾经遇到过这样一种情况,我的一个项目中使用的包仅适用于 Python 3.4,但我最近更新到了 3.6。我的代码不再运行,我不得不在系统中搜索 Python 3.4 才能真正启动该项目。这是一个巨大的皮塔饼。

我最近擦除了我的计算机,并希望避免我过去的一些错误。也许这很幼稚,但我想将版本安装限制为 brew。 (除非那是荒谬的——我对其他建议持开放态度!)此外,我想知道如何解决我过去的版本管理问题(即上述情况)。我听说过 pyenv,但那会和 brew 冲突吗?

谢谢!

【问题讨论】:

  • 您研究过 Conda 吗? conda.io/docs
  • 我应该补充一点,我使用的是 Conda,因为它不仅仅针对 Python。安装 miniconda 后,命令很简单:conda create -n my_env_name python=3.6。然后使用以下命令进入环境:source activate my_env_name。此外,continuum 维护一组预编译库,例如 NumPy,您可以通过它们的 repo (conda install numpy) 安装它们。这比 pip 安装快得多。

标签: python macos homebrew


【解决方案1】:

使用 virtualenvs 减少独立项目之间的包冲突。激活 venv 后,使用 pip 安装软件包。这样每个项目都有一个独立的包空间视图。

我使用 brew 来安装 Python 2.7 和 3.6。这些中的每一个的 venv 实用程序将分别构建一个 2 或 3 个 venv。

我还从 brew 安装了 pyenv,如果我想要一个不是 brew 最新版本的特定版本,我会使用它。在目录中激活特定版本后,我将创建一个 venv 并使用它来管理包隔离。

我真的不能说什么是最好的。让我们看看其他人怎么说。

【讨论】:

    【解决方案2】:

    我同意使用 virtualenv,它允许您为不同的项目和客户分别管理不同的 python 版本。 这基本上允许您让每个项目都有自己的依赖项,这些依赖项与其他项目隔离。

    【讨论】: