Ubuntu

安裝 python 模組時的文件權限

  • April 23, 2016

我想sphinx-doc從原始碼安裝,所以我git clone的模組然後用sudo python setup.py install.

Using /usr/local/lib/python2.7/dist-packages/pytz-2016.4-py2.7.egg
Searching for MarkupSafe==0.23
Best match: MarkupSafe 0.23
Removing MarkupSafe 0.18 from easy-install.pth file
Adding MarkupSafe 0.23 to easy-install.pth file

Using /usr/local/lib/python2.7/dist-packages
Finished processing dependencies for Sphinx==1.4b1.dev-20160423

然後我意識到我沒有使用它的權限:

$ sphinx-quickstart
bash: /usr/local/bin/sphinx-quickstart: Permission denied
$ ls -al /usr/local/bin/sphinx-quickstart 
-rwxr-x--- 1 root root 357 Apr 23 16:56 /usr/local/bin/sphinx-quickstart

問題是,如何以正確的權限安裝它?

sudo當我必須使用創建文件夾或將驅動器安裝到 /media時,我經常會遇到此類問題。這有點離題了,但是/media作為755普通使用者,如果沒有root. 這正常嗎?

如果你想從原始碼安裝 Python 包,你應該在 virtualenv 中進行。這樣您就可以最大限度地減少破壞系統 python 的機會,並且您可以刪除已安裝的軟體包而不必擔心刪除太多。

為此,您必須首先安裝 virtualenv,例如使用

sudo apt-get install python-virtualenv

安裝後在某處創建一個virtualenv並啟動它:

sudo mkdir /opt/util
sudo chown $USER /opt/util
virtualenv /opt/util/sphinx-doc
source /opt/util/sphinx-doc/bin/activate

之後執行你的

python setup.py install

git複製目錄中,您不必使用sudo.

只要 virtualenv 處於活動狀態,您就應該能夠執行sphinx-doc或任何(其他)實用程序python setup.py install創建。您也可以在 virtualenv 未啟動時使用/opt/util/sphinx-doc/bin/<UTILNAME>(您可能希望為其創建別名)執行它們。

/opt/util/sphinx-doc可以更改為您想要的任何內容。但是如果你把這樣的 virtualenvs 放在一起,你可以很容易地創建一些腳本來自動更新任何pip已安裝的包,定義別名等。

引用自:https://unix.stackexchange.com/questions/278596