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

时间:2013-03-14 19:55:10

标签: python package pip easy-install pythonpath

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

3 个答案:

答案 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)

installing any package using user command

用于升级点数:

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