我正在尝试使用pip在本地安装软件包。它曾经与--user
一起使用,但现在当我尝试它时,它会在/usr/local/lib/
中找到包的版本,然后不在本地安装它。通常情况下它会在~/.local
中安装,但现在它只是检查系统范围的dir是否包,如果它在那里,它不会安装它(这不是我想要的),如果不存在,它会尝试将它安装在我没有写权限的/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
而不是系统范围的目录?
答案 0 :(得分:16)
Citing Marcus Smith(pip的维护者):
如果您认为全球网站已过期,并希望获得最新信息 用户站点,然后使用:
pip install --upgrade --user SomePackage
如果全球网站是最新的,您真的只想要相同 在
--user
中复制的东西,然后使用:
pip install --ignore-installed --user SomePackage
(现在在#1352合并之后正常工作,将在v1.5中发布)
如何让pip install --user
始终转到~/.local
而不是系统范围的目录?
同时使用--upgrade
和--ignore-installed
个参数。
答案 1 :(得分:3)
根据pip文档,该语法是正确的,但需要Python 2.6。
用户安装
使用Python 2.6来实现安装的“用户方案”,这意味着 所有Python发行版都支持备用安装位置 这是特定于用户的。每个操作系统的默认位置是 在python文档中解释了site.USER_BASE变量。 可以通过指定-user来打开此安装模式 pip install的选项。
此外,“用户方案”可以通过设置来定制 PYTHONUSERBASE环境变量,用于更新值 site.USER_BASE。
使用site.USER_BASE将“SomePackage”安装到环境中 自定义为'/ myappenv',执行以下操作:
export PYTHONUSERBASE=/myappenv
pip install --user SomePackage
因此,以下条目应该适合您:
export PYTHONUSERBASE=~/.local
pip install --user rpy2
答案 2 :(得分:0)