【问题标题】:pip won't install Python packages locally with --userpip 不会使用 --user 在本地安装 Python 包
【发布时间】:2013-03-03 08:57:28
【问题描述】:

我正在尝试使用 pip 在本地安装软件包。它曾经与--user 一起工作,但现在当我尝试它时,它会在/usr/local/lib/ 中找到软件包的版本,然后不会在本地安装它。通常它会在~/.local 中安装东西,但现在它只是检查包的系统范围目录,如果它在那里,它不会安装它(这不是我想要的),如果它不在那里,它会尝试安装它在/usr/local/lib 中,我没有写权限。例如:

$ pip install --user rpy2
Requirement already satisfied (use --upgrade to upgrade): rpy2 in /usr/local/lib/python2.7/dist-packages/

如何使pip install --user 始终转到~/.local 而不是系统范围的目录?

【问题讨论】:

  • 它说它的“要求”得到满足,它告诉你使用 --upgrade 选项,你试过使用它吗?
  • @PurityLake:是的,这不会改变任何事情
  • “程序员常用的软件工具”,比如pip,都是话题。投票决定重新开放。
  • 我同意这应该重新打开。类似的问题是stackoverflow.com/questions/16269101/…
  • 这可能不是一个修复方法,但这可以为您节省一些时间。尝试在您希望安装不同于系统范围安装的地方使用 virtualenv

标签: python package pip easy-install pythonpath


【解决方案1】:

根据 pip 文档,该语法是正确的,但需要 Python 2.6。

用户安装量

Python 2.6 出现了用于安装的“用户方案”,这意味着 所有 Python 发行版都支持替代安装位置 这是特定于用户的。每个操作系统的默认位置是 在 python 文档中解释了 site.USER_BASE 变量。 这种安装模式可以通过指定--user来开启 pip 安装选项。

此外,“用户方案”可以通过设置 PYTHONUSERBASE 环境变量,用于更新 site.USER_BASE。

使用 site.USER_BASE 将“SomePackage”安装到环境中 自定义为“/myappenv”,请执行以下操作:

export PYTHONUSERBASE=/myappenv 
pip install --user SomePackage



因此,以下条目应该适合您:

export PYTHONUSERBASE=~/.local
pip install --user rpy2

【讨论】:

  • pip 文档位于:pip cookbook
  • MagicalPony:不知道,谢谢。但是设置 PYTHONUSERBASE 不起作用 - 它仍在查看 /usr/local/lib/
  • pip install --user --force-reinstall --upgrade jinja2 可以安装到~/.local/ 目录。
  • 这可能无法解决问题,但这可以为您节省一些时间。尝试在您希望安装不同于系统范围安装的地方使用 virtualenv
【解决方案2】:

CitingMarcus Smith(pip 维护者):

如果您认为全球网站已经过时,并且想要最新的 用户站点,然后使用:
pip install --upgrade --user SomePackage

如果全球网站是最新的,而您真的只是想要相同 在--user 中复制的东西,然后使用:
pip install --ignore-installed --user SomePackage(在 #1352 合并后现在可以正常工作,将在 v1.5 中发布)

我怎样才能让pip install --user 总是转到~/.local 而不是系统范围的目录?

同时使用 --upgrade--ignore-installed 参数。

【讨论】:

【解决方案3】:

installing any package using user command

用于升级 pip:

python -m pip install --upgrade --user pip

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-18
    • 1970-01-01
    • 1970-01-01
    • 2016-02-21
    • 2019-06-08
    • 1970-01-01
    • 2020-05-01
    • 1970-01-01
    相关资源
    最近更新 更多