Linux

pip install でインストールしたパッケージを使おうとするエラーが発生する

投稿日:2019年5月15日 更新日:

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 {パッケージ名}

一度、お試しください。

📂-Linux
-

執筆者:labo


comment

メールアドレスが公開されることはありません。

関連記事

CentOS

CentOS Stream 8 の PHP 7.2 を 7.4 に変更する

CentOS Stream 8 の PHP 7.2 を 7.4 に変更する作業について説明します。

Linux

ドキュメントルートに chmod コマンドを実行する際、指定すると便利なモード引数

目次1. はじめに2. chmod に関する前提知識3. ディレクトリは rwxr-xr-x ファイルは rw-r–r– にする解説4. ディレクトリは rwxrwxr-x ファイルは rw-rw …

Linux

標準エラー出力を標準出力に向けるコマンド

Linux のターミナルにおいて、標準エラー出力を標準出力に向けるコマンドの記述方法を紹介します。

Linux

ラベル行のある複数ファイルを1ファイルにマージするコマンド

ラベル行のある複数ファイルをマージするコマンドを紹介します。

Linux

CentOS Stream 8 に OpenDKIM を導入する

CentOS Stream 8 に OpenDKIM を導入する手順について説明します。