【问题标题】:Why should I install Python packages into `~/.local`?为什么要将 Python 包安装到 `~/.local` 中?
【发布时间】:2010-12-29 21:46:12
【问题描述】:

背景

  1. 我不使用 OS X 系统提供的 Python 版本进行开发(在 OS X 10.6 上是 Python 2.5.4 和 2.6.1)。
  2. 对于操作系统提供的 Python 版本,我没有在 site-packages 目录中安装任何东西。 (唯一的例外是从二进制包安装的 Mercurial,它会在 Python 2.6.1 站点包目录中安装两个包。)
  3. 我安装了三个版本的 Python,都使用 Mac OS X 安装程序磁盘映像:
    1. Python 2.6.6
    2. Python 2.7
    3. Python 3.1.2
  4. 我不喜欢污染我的 Python 安装的 site-packages 目录。所以我只在site-packages目录下安装了以下五个基础包。有关用于安装这些的实际方法/命令,请参阅SO Question 4324558
    1. setuptools/ez_setup
    2. distribute
    3. pip
    4. virtualenv
    5. virtualenvwrapper
  5. 所有其他软件包都安装在 virtualenvs 中。
  6. 我是这台 MacBook 的唯一用户。

问题

  1. 鉴于以上背景,我为什么要安装~/.local中的五个基础包?由于我将这些基本包安装到我已安装的 Python 发行版的 site-packages 目录中,因此我与 OS X 的 Python 发行版隔离。
  2. 使用这种方法,我是否应该担心 Glyph 的评论可能会破坏其他内容(请参阅下面的评论)?

同样,我只对这五个基本软件包的安装位置感兴趣。

相关问题/信息

我问是因为Glyphmy answerSO question 4314376 的评论,其中指出:

没有。永远不要做sudo python setup.py install 什么的。编写一个 ~/.pydistutils.cfg ,将您的 pip 安装放入 ~/.local 或其他地方。尤其是名为 ez_setup.py 的文件往往会吸收较新版本的东西,例如 setuptools 和 easy_install,这可能会破坏您操作系统上的其他东西。

之前,我问过What's the proper way to install pip, virtualenv, and distribute for Python?。但是,没有人回答使用~/.local 的“原因”。

【问题讨论】:

    标签: python


    【解决方案1】:

    对于使用框架构建的 Mac OS X 安装,没有特别好的理由支持或反对在 .local 中安装。 Python 核心开发人员在这一点上仍然存在一些争议,Glyph 认为在 Python 2.6 中为其他 Unixy 系统引入的 .local 位置应该用于 Mac OS X 并简化第三方安装过程,而其他人则认为以前传统的 Mac OS X 框架构建位置更自然。最后,这取决于你。特别是如果您使用的是虚拟环境,如果它有效,请不要担心。

    【讨论】:

      【解决方案2】:

      截至 2020 年,我认为将 Python 包安装到 .local 不是一个好主意,而是使用 virtualenv 为每个包创建单独的环境。

      我的理由

      虽然安装到 .local 不会干扰系统范围的 Python,但安装到 .local 的多个包之间仍然可能存在冲突。

      P.S.:如果你喜欢virtualenv,你也可以使用pipx

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-04-03
        • 1970-01-01
        • 1970-01-01
        • 2013-02-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多