省型旧形国電の残影を求めて

戦前型旧形国電および鉄道と変褪色フィルム写真を中心とした写真補正編集の話題を扱います。他のサイトでは得られない、筆者独自開発の写真補正ツールや補正技法についても情報提供しています。写真補正技法への質問はコメント欄へどうぞ

Kubuntu (Ubuntu 系システム) 上で Python に pip でライブラリをインストールした場合、どこにインストールされるか?

 Linux の場合、pip でなにかライブラリーをインストールしようとすると次のようなエラーメッセージが出て、インストールできません。

システムインストールした Python に numpy をインストールしようとすると...

 基本的にオプションのライブラリはシステムインストールできないので、仮想環境にインストールせよということになっているようです。で通常の方法だと Python の venv コマンドを使って仮想環境を作りそこにインストールするようです。

 例えば、あるディレクトリで次のようにコマンドを打ち込みます。

python3 -m venv .venv 

この場合カレントディレクトリに下に、.venv というディレクトリが作られそこに仮想環境が作られます。例えばホームディレクトリでこのコマンドを打てば、

$HOME/.venv というディレクトリに仮想環境が作られます。

したがってカレントディレクトリを変えれば複数の仮想環境が作られます。

 この仮想環境を有効した Python を起動したい場合は、当該カレントディレクトリ上で、

source .venv/bin/activate

と打ち込み、Python3 コマンドを打ち込めば、当該仮想環境を使った Python インタープリタが起動します。仮想環境を無効にするときは、

deactivate

とコマンドを打ちます。

因みにこの仮想環境が有効になったとき使われるインタープリタの位置は、

.venv/bin/python3

になります。但しこの python3 コマンドはシステムインストールされている python3 インタープリンタへのエイリアスになるので、仮想環境の下に実際にインタープリタ関連バイナリーファイルがぞろぞろとインストールされるわけではありません。

 しかし、オプションライブラリに関してはこの下にインストールされます。例えば、numpy を仮想環境を有効にした状態で、pip でインストールしてみたら (pip install numpy)、以下のような位置にインストールされました(但し、仮想環境の位置が $HOME/.venv の場合)。

 

    $HOME/.venv/bin/f2py
    $HOME/.venv/bin/numpy-config
    $HOME/.venv/lib/python3.12/site-packages/numpy-2.1.2.dist-info/*
    $HOME/.venv/lib/python3.12/site-packages/numpy.libs/libgfortran-040039e1-0352e75f.so.5.0.0
    $HOME/.venv/lib/python3.12/site-packages/numpy.libs/libquadmath-96973f99-934c22de.so.0.0.0
    $HOME/.venv/lib/python3.12/site-packages/numpy.libs/libscipy_openblas64_-ff651d7f.so
    $HOME/.venv/lib/python3.12/site-packages/numpy/*

 

-----

 次に pipx というコマンドも使えるというので、これを使ってインストールしてみました。pipx を使うと、無条件に以下に仮想環境が作成され、その下にライブラリがインストールされるようです。

 $HOME/.local/pipx/venvs

そして、Python3 コマンドは以下となります。

 $HOME/.local/bin/python3

やはりシステムインストールした Python3 へのエイリアスになるようです。

 

----

 最後に強制的にシステムインストールを行った場合です。

$ pip install numpy --break-system-packages

で、numpy をインストールしてみます。

 この場合、python3 はシステムインストールしたインタープリタが使われます (それは結局仮想環境を使っても同じなのですが...)。

 これで、numpy はどこにあるかと言うと...

   $HOME/.local/bin/f2py
   $HOME/.local/bin/numpy-config
   $HOME/.local/lib/python3.12/site-packages/numpy-2.3.2.dist-info/*
   $HOME/.local/lib/python3.12/site-packages/numpy.libs/libgfortran-040039e1-0352e75f.so.5.0.0
   $HOME/.local/lib/python3.12/site-packages/numpy.libs/libquadmath-96973f99-934c22de.so.0.0.0
   $HOME/.local/lib/python3.12/site-packages/numpy.libs/libscipy_openblas64_-8fb3d286.so
   $HOME/.local/lib/python3.12/site-packages/numpy/*

 

 結局、$HOME/.local/bin/ 以下にインストールされるということのようです。この方法でも、実際にはシステムインストールされるのではなく、ユーザインストールになるようです。

 

----------------

[参考サイト]

 

zenn.dev

qiita.com

zenn.dev

scrapbox.io