皮普元';t使用--user在本地安装Python包

皮普元';t使用--user在本地安装Python包,python,package,pip,easy-install,pythonpath,Python,Package,Pip,Easy Install,Pythonpath,我正在尝试使用pip在本地安装软件包。它以前与--user一起工作,但现在我尝试它时,它在/usr/local/lib/中找到了包的版本,然后就不在本地安装了。通常它会在~/.local中安装东西,但现在它只是检查系统范围的dir中是否有包,如果有,它就不会安装(这不是我想要的),如果没有,它会尝试在/usr/local/lib中安装,而我当时没有写权限。例如: $ pip install --user rpy2 Requirement already satisfied (use --upgr

我正在尝试使用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安装--用户总是转到
~/.local
而不是系统范围的目录?

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

用户安装

Python2.6带来了安装的“用户方案”,这意味着 所有Python发行版都支持替代安装位置 这是特定于用户的。每个操作系统的默认位置是 在python文档中解释了site.USER_基变量。 可以通过指定–user来打开此安装模式 pip安装选项

此外,“用户方案”可以通过设置 PYTHONUSERBASE环境变量,用于更新 site.USER_库

将“SomePackage”安装到具有site.USER\u BASE的环境中 自定义为“/myappenv”,请执行以下操作:



因此,以下条目应适用于您:

export PYTHONUSERBASE=~/.local
pip install --user rpy2
Marcus Smith(pip的维护人员):

如果你认为这个全球网站已经过时,并且想要最新的 用户站点,然后使用:
pip安装--升级--用户SomePackage

如果全球网站是最新的,你真的只是想要相同的 在
--user
中复制的内容,然后使用:
pip安装--忽略已安装--用户SomePackage
(合并#1352之后,它现在可以正常工作,将在v1.5中发布)

如何使
pip安装--用户总是转到
~/.local
而不是系统范围的目录

同时使用
--升级
--忽略已安装的
参数。

对于升级pip:

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

它说it“需求”得到了满足,它告诉你使用--upgrade选项,你试过使用它吗?@PurityLake:是的,这不会改变任何东西,“程序员常用的软件工具”,比如
pip
,都在讨论这个话题。投票决定重新开放。我同意应该重新开放。类似的问题是,这可能不是一个解决方案,但这可以为您节省一些时间。尝试在需要不同于系统范围安装的地方使用virtualenv。pip文档位于:MagicalPony:不知道,谢谢。但是设置PYTHONUSERBASE不起作用-它仍然在查看
/usr/local/lib/
pip安装--用户--强制重新安装--升级jinja2
可以安装到
~/.local/
目录。这可能不是一个修复程序,但这可以为您节省一些时间。尝试使用virtualenv,因为您希望安装不同于系统范围的安装感谢您提到的pip错误。我唯一缺少的是将--prefix与--user组合起来,请参见
python -m pip install --upgrade --user pip