以下の構成でmain.pyからmod1.pyをimportしたい
# tree . ├── conf │ └── mod1.py ├── item │ └── main.py
main.py
from ..conf import mod1 if __name__ == '__main__': print(mod1.MOD)
エラー
# python3.6 item/main.py Traceback (most recent call last): File "item/main.py", line 1, in <module> from ..conf import mod1 ValueError: attempted relative import beyond top-level package
Pythonから一つ上の通常では階層はアクセスできないので
osでディレクトリを取得
sysでライブラリのインポートパスを追加する
main.py
currnet_dir = os.path.dirname( os.path.abspath(__file__) ) sys.path.append(currnet_dir + '/../') from conf import mod1 if __name__ == '__main__': print(mod1.MOD)