web-dev-qa-db-ja.com

Pythonスクリプトを兄弟ディレクトリからインポートするにはどうすればよいですか?

ディレクトリ構造は次のとおりです。

parent_dir/
    foo_dir/
        foo.py
    bar_dir/
        bar.py

Bar.pyをfoo.pyにインポートするにはどうすればよいですか?

43
Orcris

出現するすべてのディレクトリがPython packagesの場合、つまり、すべてに__init__.pyが含まれている場合は、

from ..bar_dir import bar

ディレクトリがPythonパッケージではない場合、sys.pathをいじることによってこれを行うことができますが、そうするべきではありません。

40
Sven Marnach

一般化されたインポートには、sysおよびosモジュールを使用できます。 foo.py次の行から始めます

import sys
import os
sys.path.append(os.path.abspath('../bar_dir'))
import bar
23
prrao