2013-03-14 197 views
12

我试图用pip在本地安装软件包。它曾与--user一起使用,但现在当我尝试它时,它会在/usr/local/lib/中找到该软件包的版本,然后不会在本地安装它。通常它会在~/.local中安装东西,但现在它只是检查系统范围的包,如果它在那里,它不会安装它(这不是我想要的),如果它不存在,它会尝试将它安装在/usr/local/lib我没有写入权限。例如:pip不会在本地安装Python软件包--user

$ 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

好吧,它说它的“要求”是满意的,它告诉你使用--upgrade选项,你有尝试过使用它吗? – PurityLake 2013-03-14 20:08:18

+0

@PurityLake:是的,这不会改变什么 – user248237dfsf 2013-03-15 12:44:49

+2

“程序员通常使用的软件工具”,比如'pip',是关于主题的。投票重新开放。 – 2013-08-04 01:45:46

回答

2

根据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 
+0

pip文档位于:[pip cookbook](http://www.pip-installer.org/en/latest/cookbook.html) – JamCon 2013-03-14 20:30:04

+1

MagicalPony:不知道,谢谢。但是设置PYTHONUSERBASE不起作用 - 它仍然在'/ usr/local/lib /'中寻找' – user248237dfsf 2013-03-15 12:45:41

+0

'pip install --user --force-reinstall --upgrade jinja2'可以安装到'〜/ .local /'目录。 – RNA 2013-11-21 01:35:56

12

Citing马库斯史密斯(点的维护者):

如果你认为全球网站已经过时,并希望在 用户现场最新的,然后使用:
pip install --upgrade --user SomePackage

如果全球网站是最新的,你真的只是想同样 事情--user复制,然后使用:
pip install --ignore-installed --user SomePackage(现在的#1352,这是合并后的正常工作在V1.5发布)

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

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

+0

感谢您提到pip错误。我唯一缺少的是结合--prefix与--user,请参阅http://stackoverflow.com/questions/24420125/python-change-user-site-directory-or-install-setup-py-prefix -with用户 – rudimeier 2014-06-26 05:35:46

相关问题