ホームページ  >  記事  >  バックエンド開発  >  Pythonでインストールされたパッケージを見つける方法

Pythonでインストールされたパッケージを見つける方法

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼オリジナル
2019-06-15 11:22:044776ブラウズ

Python によるパッケージの検索方法

関連する推奨事項:「Python ビデオ

Pythonでインストールされたパッケージを見つける方法

これで完了おそらく、コンピュータ上の 1 つの Python だけでなく、さらに多くの仮想環境が存在するため、パッケージをインストールするときに、インストール パッケージのパスに注意を払うことをうっかり忘れてしまいます。まず、バッグを見つけるという問題を解決しましょう。この質問に対する答えは非常に簡単ですが、多くの人はこの原則を知りません。 Python インタープリターのパスが /bin/python の場合、Python 対話型環境を開始するか、このインタープリターを使用してスクリプトを実行すると、デフォルトで次の場所が検索されます:

/ lib (標準ライブラリ パス)

/lib/pythonX.Y/site-packages (サードパーティ ライブラリのパス、X.Y は Python に対応するメジャー バージョン番号とマイナー バージョン番号です。 3.7、2.6 など)

現在の作業ディレクトリ (pwd コマンドの戻り結果)

Linux でデフォルトの Python を使用している場合、 は /usr です。デフォルトのオプションを使用する場合、 は /usr/local です。上の 2 番目の項目から、マイナー バージョンが異なる Python のサードパーティ ライブラリのパスが異なることがわかります。Python を 3.6 から 3.7 にアップグレードすると、以前にインストールされていたサードパーティ ライブラリは利用できなくなります。もちろんフォルダごとコピーしてもほとんどの場合は問題ありません。

いくつかの便利な関数

sys.executable 現在使用されている Python インタープリターのパス

sys.path 現在のパッケージの検索パスのリスト

sys.prefix 現在使用されている

例:

>>> import sys
>>> sys.executable'/home/frostming/.pyenv/versions/3.7.2/bin/python'
>>> sys.path
['', '/home/frostming/.pyenv/versions/3.7.2/lib/python37.zip',
 '/home/frostming/.pyenv/versions/3.7.2/lib/python3.7', 
 '/home/frostming/.pyenv/versions/3.7.2/lib/python3.7/lib-dynload', 
 '/home/frostming/.local/lib/python3.7/site-packages', 
 '/mnt/d/Workspace/pipenv', '/home/frostming/.pyenv/versions/3.7.2/lib/python3.7/site-packages']
 >>> sys.prefix'/home/frostming/.pyenv/versions/3.7.2'

環境変数を使用して検索パスを追加します

If の場合パッケージのパスが上記の検索パス リストに存在しない場合は、パスを PYTHONPATH 環境変数に追加し、複数のパスを次のように区切ることができます (Windows の場合;)。

ただし、PYTHONPATH=/home/frostming/.local/lib/python2.7/site-packages など、異なる Python バージョンのパッケージのパスを PYTHONPATH に追加しないように注意してください。デフォルトの検索パスを優先するため、Python 3 を使用している場合は互換性の問題が発生する可能性があります。

ちなみに、PATH は実行可能プログラムを見つけるために使用される検索パスです。ターミナルでコマンド my_cmd を実行すると、システムはこのパスに my_cmd が存在するかどうかを確認するために PATH 内のパスをスキャンします。プログラムが見つからない、またはコマンドが認識できないというメッセージが表示された場合は、パスが PATH に追加されているかどうかを確認する必要があります。

Python によるパッケージのインストール方法

現在、Python パッケージのインストールには基本的に pip が使用されていますが、pipenv や詩を使用した場合でも、最下層は依然として pip です。常に適用されます。 pip をインストールしていない場合はこちらを、インストールしても pip コマンドが使用できない場合は前のセクションを参照してください。

pip を実行するには 2 つの方法があります:

pip ...
python -m pip ...

最初の方法と 2 番目の方法は似ていますが、最初の方法で使用される Python インタープリターが異なる点です。 pip では、通常、pip パスが /bin/pip の場合、対応する Python パスは /bin/python になります。 2 番目の方法では、Python の場所を明示的に指定します。このルールは、すべての Python 実行可能プログラムに適用されます。プロセスを次の図に示します。

Pythonでインストールされたパッケージを見つける方法

その後、カスタム構成を追加せずに、pip を使用してパッケージをインストールすると、/lib/pythonX.Y/site-packages ( /lib/pythonX.Y/site-packages) に自動的にインストールされます。 ;path_prefix> は前の段落から取得されます)、実行可能プログラムは /bin にインストールされます。コマンド ラインで my_cmd を使用して直接実行する必要がある場合は、忘れずに PATH に追加してください。

pip のインストール場所を変更するオプション

# -- プレフィックス PATH、 を指定された値に置き換えます -- 内の root ROOT_PATH。 --root /home/frostming のように ROOT_PATH を先頭に追加します。 は /usr から /home/frostming/usr に変更されます --target TARGET、インストール場所を TARGET

# に直接指定します# #仮想環境

仮想環境は、依存関係の競合を防ぐために、さまざまなプロジェクトの依存関係パッケージを分離し、それらを別のパスにインストールします。 Python がパッケージをインストールする方法を理解した後は、仮想環境 (virtualenv、venv モジュール) の原理を理解するのは難しくありません。実際、virtualenv myenv を実行すると、新しい Python インタープリターが myenv/bin にコピーされ、myenv/lib、myenv/lib/pythonX.Y/site-packages などのディレクトリが作成されます (コピーには venv モジュールは使用されませんが、結果は基本的には同じです)。 source myenv/bin/activate を実行すると、myenv/bin が PATH の前に挿入され、コピーされた Python インタプリタが最初に検索されます。こうすることで、後でパッケージをインストールするときに、 が myenv になり、インストール パスの分離が実現されます。

要約

ここで、パッケージ パスの検索で最も重要なのは パス プレフィックスであり、この値は使用される Python インタープリター パスから派生することがわかります。したがって、パッケージのパスを見つけるには、インタープリターのパスを知るだけで済みます。パッケージのパスを変更する場合は、正しい PATH 設定を通じて必要な Python インタープリターを指定するだけで済みます。

さて、冒頭の 3 つの質問に戻りますが、皆さんは解けますか?トラブルシューティングの手順または解決策をコメント領域に記入してください。

この記事の例ではすべて Unix パス規則を使用しています。Windows システムの場合は、適切な変更を行う必要があります。たとえば、/bin は /Scripts にする必要があります。 ↩

以上がPythonでインストールされたパッケージを見つける方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。