どこでもPython import sys
またはimport mymodule
を使用してモジュールをインポートするコード]
ディレクトリまたはパスが指定されていない場合、インタープリターはどのようにして正しいファイルを見つけるのですか?
http://docs.python.org/3/tutorial/modules.html#the-module-search-path
6.1.2。モジュール検索パス
spam
という名前のモジュールがインポートされると、インタープリターは最初にその名前の組み込みモジュールを検索します。見つからない場合、変数spam.py
で指定されたディレクトリのリストでsys.path
という名前のファイルを検索します。sys.path
は次の場所から初期化されます:
- 入力スクリプトを含むディレクトリ(またはファイルが指定されていない場合は現在のディレクトリ)。
PYTHONPATH
(ディレクトリ名のリスト、シェル変数PATH
と同じ構文)。- インストール依存のデフォルト。
注:シンボリックリンクをサポートするファイルシステムでは、入力スクリプトを含むディレクトリは、シンボリックリンクをたどって計算されます。つまり、シンボリックリンクを含むディレクトリはモジュール検索パスに追加されません。
初期化後、Pythonプログラムは
sys.path
を変更できます。実行中のスクリプトを含むディレクトリは、標準ライブラリパスの前の検索パスの先頭に配置されます。ライブラリディレクトリ内の同じ名前のモジュールの代わりに、そのディレクトリにロードされます。
「インストール固有のデフォルト」については、 site
モジュール のドキュメントを参照してください。
また、sys
モジュールを使用して、現在のパスが何であるかを確認できます。
import sys
print(sys.path)
環境変数として設定されている [〜#〜] pythonpath [〜#〜] を使用して、パッケージ(___init__.py
_ファイルを含むフォルダー)およびモジュール(または、一度ロードされている場合)を検索します、_sys.modules
_)からモジュールオブジェクトを取得します。
Pythonには、ターミナル内にあるものと同じパス変数があります。 Pythonは、そのパス内のフォルダー、またはプログラムが配置されているフォルダーでモジュールを検索します。