環境変数PYTHONPATH
はに設定され$HOME/lib/python
ます。
のファイルツリーは$PYTHONPATH
次のようになります
foo/
__init__.py
bar.py
両方のファイルが空です。
次に、を含む簡単なスクリプトを作成します
#!/usr/bin/env python
print __file__
import bar
として保存しbaz.py
ます。スクリプトをそれ以外の場所で実行すると、$PYTHONPATH/foo
モジュールを見つけることができませんbar
。
ただし、ファイルを移動してそのファイルへ$PYTHONPATH/foo
のシンボリックリンクを作成すると、どこからでも実行できます。例えば:
$ cd /tmp
$ ln -s $PYTHONPATH/foo/baz.py baz
$ ./baz
./baz
$
まだ__file__
に設定されてい./baz
ます。では、Pythonはどのようにしてモジュールバーを見つけるのでしょうか?