pip不会在本地使用--user安装Python包

15 python pip package easy-install pythonpath

我正在尝试使用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/
Run Code Online (Sandbox Code Playgroud)

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

Pio*_*ost 16

引用 Marcus Smith(pip的维护者):

如果您认为全球网站已过期,并且想要在用户网站中使用最新网站,请使用:
pip install --upgrade --user SomePackage

如果全局站点是最新的,并且你真的只想要重复相同的东西--user,那么使用:(
pip install --ignore-installed --user SomePackage现在在#1352合并之后正常工作,这将在v1.5中发布)

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

使用both --upgrade--ignore-installed参数.


Jam*_*Con 4

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

\n\n
\n

用户安装

\n\n

Python 2.6 附带了 \xe2\x80\x9cuser 方案\xe2\x80\x9d 安装,这意味着\n 所有 Python 发行版都支持特定于用户的替代安装位置\n。每个操作系统的默认位置\n 在 site.USER_BASE 变量的 python 文档中进行了解释。\n 可以通过为 pip install 指定 \xe2\x80\x93user\n 选项来打开此安装模式。

\n\n

此外,可以通过设置 PYTHONUSERBASE 环境变量来自定义 \xe2\x80\x9cuser 方案\xe2\x80\x9d,该变量会更新 site.USER_BASE 的值。

\n\n

要将 \xe2\x80\x9cSomePackage\xe2\x80\x9d 安装到 site.USER_BASE\n 自定义为 \xe2\x80\x98/myappenv\xe2\x80\x99 的环境中,请执行以下操作:

\n
\n\n
export PYTHONUSERBASE=/myappenv \npip install --user SomePackage\n
Run Code Online (Sandbox Code Playgroud)\n\n



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

\n\n
export PYTHONUSERBASE=~/.local\npip install --user rpy2\n
Run Code Online (Sandbox Code Playgroud)\n