この質問 (相対パスからモジュールをインポートする) に対する回答は、そもそも質問をする可能性が高い私たちには使用できないため、これを投稿しています。
次のファイル構造があるとします (他の質問と同じ命名規則を保持しています)。
C:\dirMain\
dirFoo\
Foo.py
dirBar\
Bar.py
Bar.py
内からインポートしたいFoo.py
。
このようなもの:(私のCはここに表示されています、ごめんなさい):
# Foo.py
from ../dirBar/Bar import *
お気軽に重複としてマークしてください。ただし、最初に他の回答を確認してください。私が見たもののほとんどは、過度に複雑で、機能しないか、不完全です。これは単純な質問であり、うまくいけば簡単な答えがあります。
私が試したこと:
1) Puffin GDI からの以下の提案:
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
結果:
NameError: name ' file ' が定義されていません
これに対する解決策は、表向きはこの答えの中にありますが、私にはわかりません。
2)ここから:フルパスを指定してモジュールをインポートする方法は?
import imp
abc = imp.load_source('bar.py', 'C:\dirMain\dirBar.py')
結果:
IOError: [Errno 22] 引数が無効です
3)ここで説明したように:相対パスからモジュールをインポートする
__init__.py
(最初にに追加/dirBar
)
from ..dirBar import Bar
結果:
ValueError: 非パッケージで相対インポートを試みました