環境変数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はどのようにしてモジュールバーを見つけるのでしょうか?