-2

この質問 (相対パスからモジュールをインポートする) に対する回答は、そもそも質問をする可能性が高い私たちには使用できないため、これを投稿しています。

次のファイル構造があるとします (他の質問と同じ命名規則を保持しています)。

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: 非パッケージで相対インポートを試みました

4

1 に答える 1

0

すべてのプログラムにルート パスをインポートします。すべてのプログラムでルートから移動パスを開始します。

sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))

また

root = "C:\dirMain"
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), root)))

構成にルートパスを記述してから、

from dirBar.Bar import class_name
于 2013-10-29T05:45:34.723 に答える