Pythonでインポートしたモジュールの検索順序を詳しく解説(Pythonインポート検索モジュールの仕組みを詳しく解説)

参考

Pythonでインポートするモジュール検索シーケンスの詳細説明(Pythonインポート検索モジュールの仕組みの詳細説明):https://blog.csdn.net/qq_27825451/article/details/100552739

import sys
sys.path
'''返回的列表为:
['',   # 运行程序的根目录
 'D:\\ProgramData\\Anaconda3\\envs\\pytorch1.2.0\\python36.zip', # 这几个是python标准库目录
 'D:\\ProgramData\\Anaconda3\\envs\\pytorch1.2.0\\DLLs', 
 'D:\\ProgramData\\Anaconda3\\envs\\pytorch1.2.0\\lib', 
 'D:\\ProgramData\\Anaconda3\\envs\\pytorch1.2.0', 
 'C:\\Users\\Administrator\\AppData\\Roaming\\Python\\Python36\\site-packages', 
 'D:\\ProgramData\\Anaconda3\\envs\\pytorch1.2.0\\lib\\site-packages'  # 最后面这个是第三方模块所在的目录
]
'''
'''
# 注意:这里是没有设置PYTHONPATH 环境变量的路径值的,也没有创建.pth文件
'''

Python では、組み込みモジュール (Built-in Module) は、Python インストール パッケージに付属するモジュールのセットを指します。これらのモジュールは、さまざまな Python プログラム開発で広く使用できる基本的な汎用機能とツールを提供します。文字列操作、ファイル IO、数学的計算、正規表現、日付と時刻の処理、ネットワーク通信など。組み込みモジュールは、Python インタープリターの起動時にメモリにロードされ、インストールやインポートを行わずに直接使用できます。

Python の組み込みモジュールの数は非常に多く、最も一般的に使用されるモジュールはコア モジュールとして分類されます (一般的に使用されるモジュールには、math、sys、os、re、json、random などが含まれます)。また、一般的に使用されるモジュールもいくつかあります。標準ライブラリ モジュール (一般的に使用されるのは、datetime、コレクション、itertools、argparse、logging など) は標準モジュールであり、これらの標準モジュールはすべて Python インストール パッケージに含まれています。

組み込みモジュールを使用する場合は、最初にインストールまたはインポートせずに、Python インタープリターまたは Python プログラムで直接呼び出すだけで済みます。たとえば、組み込みモジュール math を使用して数学的計算を実行するには、Python を入力するだけで済みます。

import math

print(math.sqrt(2))

この例では、組み込みモジュールmathの関数を使用しsqrt()て 2 の平方根を求めます。Python プログラムに他のインポートは必要なく、数学モジュールを直接呼び出すだけです。

要約:

Python がモジュールを検索する順序は次のとおりです。

内蔵モジュール>

プログラムのルート ディレクトリ (つまり、Python ファイルが現在実行されているディレクトリ) >

PYTHONPATH 環境変数で設定されたディレクトリ >

標準ライブラリのディレクトリ >

見つかった *.pth ファイルの内容>

サードパーティ拡張機能のサイト パッケージ ディレクトリ

Pythonコードでパンをインポートする順序は何ですか

Python コードでパッケージをインポートする順序は何ですか? 現在のディレクトリに同じ名前のパッケージがある場合、現在のディレクトリにあるパッケージを最初にインポートする必要がありますか、それとも仮想環境から直接インポートする必要がありますか?

Python では、パッケージは のsys.pathパスリストの順序でインポートされます。sys.pathは、Python プログラムの実行時のデフォルトの検索パスであり、次のパスが含まれます。

  • 現在のスクリプトが配置されているディレクトリ
  • オペレーティング システムの環境変数PYTHONPATHに含まれるパス
  • Python インストール パスの下の標準ライブラリ パス (通常は/usr/lib/python3.7/または内/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/)
  • Python 検索パスで定義されたサードパーティ ライブラリ パス

Python プログラムにパッケージをインポートすると、Python は最初に表示されるパッケージ バージョンが見つかるまで、上記のパス リストに従って順番にパッケージを検索し、それ以降の検索ではそのパッケージは自動的に無視されます。したがって、現在のディレクトリに同じ名前のパッケージがあり、そのパスがsys.pathの仮想環境のパスの前にある場合、Python はまず現在のディレクトリでパッケージを検索し、パッケージの代わりにその中のモジュールをインポートします。仮想環境で。

Python が仮想環境にパッケージを確実にインポートするようにするには、プログラムの先頭で仮想環境のパスを明示的に指定します。たとえば、次のようになります。

import sys
sys.path.insert(0, '/path/to/virtual/env')

このようにして、仮想環境のパスをsys.pathリストの先頭に追加して、Python が仮想環境にパッケージを確実にインポートできるようにします。

おすすめ

転載: blog.csdn.net/qq_15821487/article/details/131536371