19

我正在尝试使用 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而不是系统范围的目录?

4

3 回答 3

23

引用Marcus Smith(点子的维护者):

如果您认为全局站点已过时,并且想要用户站点中的最新版本,请使用:
pip install --upgrade --user SomePackage

如果全局站点是最新的,并且您真的只想在 中复制相同的内容--user,请使用:(
pip install --ignore-installed --user SomePackage在 #1352 合并后现在可以正常工作,将在 v1.5 中发布)

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

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

于 2013-11-30T18:52:32.317 回答
4

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

用户安装

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

此外,可以通过设置 PYTHONUSERBASE 环境变量来自定义“用户方案”,该环境变量会更新 site.USER_BASE 的值。

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

export PYTHONUSERBASE=/myappenv 
pip install --user SomePackage



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

export PYTHONUSERBASE=~/.local
pip install --user rpy2
于 2013-03-14T20:24:19.293 回答
0

使用用户命令安装任何软件包

用于升级 pip :

python -m pip install --upgrade --user pip
于 2018-11-01T04:55:42.930 回答