1. はじめに
以下のコマンドで、Python のパッケージをシステムにインストールしたとします。
$ sudo pip install {パッケージ名}
環境によって違いますが、パッケージは /usr/local/lib/python2.7/
といったディレクトリにインストールされます(Python のバージョンが 2.7 の場合)。
このとき、インストール先のディレクトリやファイルに「管理者しかアクセスできない」パーミッションがセットされることがあります(環境に依ると思いますが)。
そうなると、一般ユーザーでこのパッケージを使う操作を実行しようとすると当然エラーが発生します。 本記事では、こういった場合の対処方法を紹介します。
2. 環境
- OS: Ubuntu 18.04
- Python 2.7 (
apt
コマンドでインストール)
3. 対処方法
インストールしたパッケージに対し、一般ユーザーでもアクセスできるようなパーミッション設定を行います。
Ubuntu の場合、sudo pip install
コマンドでインストールしたパッケージは、/usr/local/lib/python2.7
以下にインストールされるので、このディレクトリに対して以下のコマンドを実行します(ついでに、/usr/lib/python2.7/
にも同じ操作を行います)。
$ sudo chmod -R go+rX /usr/local/lib/python2.7/
$ sudo chmod -R go+rX /usr/lib/python2.7/
- ディレクトリのパーミッション: グループとその他のユーザーに対して「読み取り(r)」と「その中へのアクセスを許可する(x)」を与えています。
- ファイルのパーミッション: グループとその他のユーザーに対して「読み取り(r)」を与えています。
パッケージに含まれるファイルの場所を調べる
特定のパッケージのファイルがどこにインストールされたのか知りたい場合は、以下のコマンドで表示することができます。$ pip show -f {パッケージ名}
表示されたファイルのパーミッションを確認しておきましょう。
4. おわりに
一般ユーザーが使うパッケージをインストールする場合は、--user
オプションを指定しておくのがよいです。こちらであれば、そのユーザーのホームディレクトリ以下(~/.local/
など)にインストールされるため、今回のようなパーミッションの問題は起こりにくいです。
$ pip install --user {パッケージ名}
一度、お試しください。