web-dev-qa-db-ja.com

pythonモジュールのインストール中のファイルパーミッション

ソースから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にマウントしたりする必要がある場合、この種の問題が発生することがよくあります。これは少し外れたトピックですが、/media755であり、通常のユーザーとして、rootでないと自分のコンピューターに自分のドライブをマウントできません。それは正常ですか?

2
nowox

ソースから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 clonedディレクトリでは、Sudoを使用する必要はありません。

Virtualenvがアクティブである限り、sphinx-docまたはpython setup.py installが作成する任意の(その他の)ユーティリティを実行できるはずです。 /opt/util/sphinx-doc/bin/<UTILNAME>(エイリアスを作成する場合があります)を使用して、virtualenvがアクティブでないときにそれらを実行することもできます。

/opt/util/sphinx-docは好きなように変更できます。ただし、このようなvirtualenvを並べて配置すると、インストールされているpipパッケージを自動更新したり、エイリアスを定義したりするためのスクリプトを簡単に作成できます。

3
Anthon