ディレクトリ構造を想像してください。
/ / __init__.py b.py c.py c.py
ファイル/a/b.py
は次のようになります。
インポート c should_be_absolute = c
他のすべてのファイル (を含む__init__
) は空です。
テスト スクリプトを実行する場合 (python 2.7 を使用):
import a.b
print a.b.should_be_absolute
PYTHONPATH=/
空のディレクトリから(したがって、現在のディレクトリからは何も追加されません)PYTHONPATH
取得します
<module 'a.c' from '/a/c.py'>
PEP 328import <> is always absolute
と私が期待する声明によると:
<module 'c' from '/c.py'>
ファイルを削除すると、出力は期待どおりになり/a/c.py
ます。
私は何が欠けていますか?そして、これが正しい動作である場合 - (の代わりに)c
からモジュールをインポートする方法は?b
a.c
アップデート:
python dev メーリング リストによると、ドキュメントのバグのようです。Python27 では、インポートはデフォルトで絶対ではありません。