繁体   English   中英

为什么我应该将 Python 包安装到 `~/.local` 中?

[英]Why should I install Python packages into `~/.local`?

背景

  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. 蟒蛇 2.6.6
    2. 蟒蛇 2.7
    3. 蟒蛇 3.1.2
  4. 我不喜欢污染我的 Python 安装的 site-packages 目录。 所以我只在site-packages目录下安装了以下五个基础包。 有关用于安装这些的实际方法/命令,请参阅SO Question 4324558
    1. 设置工具/ez_setup
    2. 分发
    3. 点子
    4. 虚拟环境
    5. 虚拟包装器
  5. 所有其他软件包都安装在 virtualenvs 中。
  6. 我是这台 MacBook 的唯一用户。

问题

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

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

相关问题/信息

我问是因为GlyphSO 问题 4314376 的回答的评论,其中指出:

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

之前,我问过为 Python 安装 pip、virtualenv 和分发的正确方法是什么? . 但是,没有人回答使用~/.local的“原因”。

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

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

我的理由

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

PS:如果你喜欢virtualenv你也可以使用pipx

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM