私は Python を学んでおり、2.7.3 で作業しており、import
ステートメントを理解しようとしています。
ドキュメントによると、モジュールをインポートしようとすると、インタープリターは最初に組み込みモジュールの 1 つを検索します。
組み込みモジュールとはどういう意味ですか?
次に、ドキュメントには、インタープリターが sys.path によってリストされたディレクトリを検索し、sys.path がこれらのソースから初期化されることが記載されています。
- 入力スクリプトを含むディレクトリ (または現在のディレクトリ)。
PYTHONPATH
(シェル変数と同じ構文のディレクトリ名のリストPATH
)。- インストールに依存するデフォルト。
これは、コマンドライン モードで python を使用して私のコンピューターから sys.path コマンドを実行した場合の出力例です: (サイズが大きくならないようにいくつか削除しました)
['', '/usr/lib/python2.7', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PIL', '/usr/lib/python2.7/dist-packages/gst-0.10', '/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.7', '/usr/lib/python2.7/dist-packages/ubuntuone-couch', '/usr/lib/python2.7/dist-packages/ubuntuone-storage-protocol']
ここで、'' パスが 'スクリプト' を含むディレクトリを参照していると想定しているため、残りのパスは
PYTHONPATH
環境変数から取得されると考えました。ただし、ターミナルに移動して と入力するとenv
、PYTHONPATH
環境変数として存在しません。import os
その後も試しましos.environ
たが、同じ出力が得られます。本当に PYTHONPATH 環境変数がないのでしょうか? PYTHONPATH 環境変数を明確に定義したことはないと思いますが、新しいパッケージをインストールすると、その環境変数が自動的に変更されると思いました。PYTHONPATH がない場合、sys.path はどのように設定されますか? 新しいパッケージをダウンロードする場合、この PYTHONPATH 変数がない場合、Python はどのようにしてそれらを探す場所を知るのでしょうか?
環境変数はどのように機能しますか? 私が理解していることから、環境変数はそれらが設定されているプロセスに固有のものですが、複数のターミナル ウィンドウを開いて を実行する
env
と、すべて同じ変数が多数表示されますPATH
。たとえば/etc/environment
、私の変数を含む永続的な環境変数のファイルの場所があることを知っていPATH
ます。永続的な環境変数がどこに保存されているかを知ることはできますか? 新しい永続的な環境変数を保存するための推奨される場所は? 環境変数は、たとえば Python インタープリターで実際にどのように機能しますか? Python インタープリターは を探しますがPYTHONPATH
、核心レベルではどのように機能するのでしょうか?