pip 不会使用 --user 在本地安装 Python 包
Posted
技术标签:
【中文标题】pip 不会使用 --user 在本地安装 Python 包【英文标题】:pip won't install Python packages locally with --user 【发布时间】: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
,都是话题。投票决定重新开放。
我同意这应该重新打开。类似的问题是***.com/questions/16269101/…
这可能不是一个修复方法,但这可以为您节省一些时间。尝试在您希望安装不同于系统范围安装的地方使用 virtualenv
【参考方案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
参数。
【讨论】:
感谢您提及 pip 错误。我唯一缺少的是将 --prefix 与 --user 结合使用,请参阅***.com/questions/24420125/…【参考方案3】:installing any package using user command
用于升级 pip:
python -m pip install --upgrade --user pip
【讨论】:
以上是关于pip 不会使用 --user 在本地安装 Python 包的主要内容,如果未能解决你的问题,请参考以下文章