【问题标题】:Multiple versions of Python on OS X LeopardOS X Leopard 上的多个 Python 版本
【发布时间】:2012-06-22 08:34:25
【问题描述】:

我目前在我的 Mac 上安装了多个版本的 Python,它附带的版本、我最近从 python.org 下载的版本、用于在本地运行 Zope 的旧版本以及 Appengine 正在使用的另一个版本。这有点乱。有什么建议使用一个版本的 python 来统治它们吗?我将如何删除旧版本并将我的所有应用程序链接到单个安装。我应该知道任何特定于 Mac 的问题吗?这是一个愚蠢的想法吗?

【问题讨论】:

标签: python macos osx-leopard zope


【解决方案1】:

拥有多个版本的 Python 在本质上并没有错。有时在使用具有版本依赖关系的应用程序时这是必需的。可能最大的问题是处理可能因应用程序而异的站点包依赖关系。 virtualenv 之类的工具可以提供帮助。您应该做的一件事是尝试在 /System/Library/Frameworks 中删除 Apple 提供的 Python,并从 /usr/bin/python 链接到该 Python。 (注意最近对多个版本的讨论here。)

【讨论】:

    【解决方案2】:

    Ian Bicking 的 virtualenv 允许我为我构建的每个应用程序使用独立的 Python,并让我决定是否在独立的 Python 环境中包含全局站点包。

    我没有在 Zope 上尝试过,但我猜以下应该可以很好地工作:

    1. 使用 Zope 的 Python,创建一个新的 virtualenv,可以使用或不使用 --no-site-packages
    2. 将 Zope 放入虚拟环境中
    3. 使用 $VENV/bin/activate 激活环境
    4. 安装任何需要的站点包
    5. 现在在 $VENV/bin/python 上使用 Python 运行 Zope

    这对于使用各种版本的 Python、Django 和附加组件管理 Django 项目非常有效。

    This article 似乎更详细地介绍了 Grok 和 Virtualenv 的细节,但一般性也应该适用于 Zope。

    【讨论】:

      【解决方案3】:

      +1 表示虚拟环境。

      即使您不需要不同的 Python 版本,最好将开发依赖项与系统 Python 分开。

      我不确定您使用的是什么操作系统,但我发现 these 说明对于在 OSX 上运行 python 开发环境非常有用。

      【讨论】:

        【解决方案4】:

        我更喜欢的方法应该适用于每个类 UNIX 操作系统:

        为每个需要特定 python 版本的应用程序创建一个用户帐户。在每个用户中安装带有用户本地前缀(如 ~/build/python)的相应 python 版本,并将 ~/build/bin/ 添加到用户的 PATH 环境变量中。在正确的用户中安装/使用您的 python 应用程序。

        这种方法的优点是各个 python 安装之间的完美隔离以及相对方便地选择正确的 python 环境(只需su 给适当的用户)。操作系统也保持不变。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-08-04
          • 2010-11-24
          • 2010-11-25
          • 1970-01-01
          • 2018-10-23
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多