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

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

Linux

【Ubuntu】pip install –upgrade pip コマンドを実行すると、その後、ImportError: cannot import name main というエラーが発生する場合の対応方法

「pip install –upgrade pip」コマンドを実行した後、pip コマンドを実行すると「ImportError: cannot import name main」というエラーが発生す …

SELinux

Webサーバーがサイトの構成ファイルを上書きできない問題に対応する(SELinuxが原因の場合)

目次1. はじめに2. 前提3. CentOS 7 の SELinux4. 対応手順5. おわりに参考 1. はじめに Webサイトによっては、そのWebサイトを構成しているファイルを自分で更新する場 …

WSL

WSL の Ubuntu 16.04 LTS を 18.04 LTS にアップグレードする

WSL の Ubuntu 16.04 LTS を 18.04 LTS にアップグレードしたときの手順を記録します。 目次1. 公式な情報2. 現状確認3. アップグレード作業(1) パッケージを最新の …

Linux

【Linux】 CentOS のマニュアル

CentOS は、RHEL (Red Hat Enterprise Linux)のソースコードから商標や商用パッケージ等を除去してリビルドした RHELクローンです。 マニュアルを見る場合は、RHEL …

Linux

【Linux】Info マニュアルの基礎知識と、閲覧に便利な pinfoコマンド

目次1. オンラインマニュアル (manコマンド)と Infoマニュアル (infoコマンド)2. Info マニュアルの基礎知識Info マニュアルのデータpinfo コマンドウェブ版もあります3. …