2014-07-09 115 views
3

python-six安裝在/usr中,我需要升級它,但我沒有root權限。pip安裝:在沒有sudo的情況下升級/ usr中的庫

我知道如何安裝庫沒有root權限:

pip install --install-option="--prefix=$HOME/.local" six 

我知道如何使用root權限升級庫:

pip install --upgrade six 

但是當我嘗試去圖書館升級爲使:

pip install --upgrade --install-option="--prefix=$HOME/.local" six 

我得到:

Downloading/unpacking six from https://pypi.python.org/packages/source/s/six/six-1.7.3.tar.gz#md5=784c6e5541c3c4952de9c0a966a0a80b 
    Running setup.py egg_info for package six 

    no previously-included directories found matching 'documentation/_build' 
Installing collected packages: six 
    Found existing installation: six 1.2.0 
    Uninstalling six: 
Exception: 
OSError: [Errno 13] Permission denied: '/usr/share/pyshared/six-1.2.0.egg-info' 

那麼,如何在沒有sudo的情況下升級six

+0

您可以在您的主目錄中安裝python。 –

+0

@PadraicCunningham當我嘗試使用'pip install --install-option =「 - prefix = $ HOME/.local」package'安裝任何庫到家目錄時我已經安裝了該庫。你的意思是別的嗎? –

+0

我的意思是你可以從源代碼安裝Python到你指定的任何目錄,然後添加到bashrc的路徑,然後你可以安裝任何軟件包 –

回答

0

對於這一點 - 我會建議一個虛擬環境中的工作:

http://docs.python-guide.org/en/latest/dev/virtualenvs/

然後,你將有你的模塊的總控制,而不竊聽系統管理員sudo的

HTH的感謝// P

免責聲明 - 涉及更多點子工作;-)

+0

感謝您的建議,我現在正在嘗試。我有限的本地存儲空間,所以有一種方法可以確保當我'pip安裝'一個庫時,它只會在'/ usr'內沒有安裝庫時纔會這樣做?並確保當我'pip安裝 - 升級'一個庫時,它只會在'usr'內沒有安裝最新版本的庫時才這麼做? –

+1

是的,你可以在創建虛擬env時使用--system-site-packages標誌,這樣virtualenv --system-site-packages foo然後source foo/bin/activate - 或者你可以使用--no- site-packages參數和ln -s你想要的庫:-) – YFP

相關問題