2013-03-14 155 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

相關問題