2017-08-17 7 views
1

私はprojaという名前のプロジェクトフォルダを持っています。いくつかのファイルが含まれています:1つのファイルに対して別のファイルはインポートできません。

"__init__.py" 
classa.py 
classb.py 
classc.py 

私はprojaという名前のフォルダbにサブフォルダを持っています。 "init .py" "もあります。このフォルダには、次のインポート文を含むpyスクリプトが含まれています。 classaをインポートしますが、classbには失敗します。

from classa import classa 
from classb import classb 
from class import classc 

私はprojaからスクリプトを実行するかどうかは関係ありません: "パイソンfolderBの/ imptest.py" またはI CDのfolderBのと実行するために: "Pythonのimptest.pyを"。

それは常にで失敗:「はImportError:いいえモジュールの名前ClassBの...」

は、なぜそれが一つのファイルからのインポートではなく、別の同じ場所にあるのだろうか?

+0

私はsys.path.appendを実行すると動作することを発見しました... しかし、なぜそのディレクトリ内の1つのファイルで動作するのか分かりませんが、同じディレクトリ内の別のファイルでは動作しません。可能であれば、sys.path.appendを避けなければならない。ありがとう。 –

答えて

0

一度これでファイルを実行classb.py

classbの関数やメソッドがファイル内に存在していることを確認してください:このコマンドの動作した場合の経路を提出、その後

import classa 
import classb 
import classc 

は大丈夫です、あなたが見えるはずですファイルの中に。

この場合、ファイルclassb.py
の内容を確認してください。それが役立ちます。

+0

ありがとうございます。ファイル名、クラス名などが正しいことを確認した後、$ PYTHONROOTのルートから完全なパスを含むようにインポートステートメントを変更しました。それはうまくいった。 parentdir.projaインポートクラスCそれでも ないでくださいからparentdir.projaインポートClassBの からparentdir.projaインポートにClassA から つのファイルが同じディレクトリにインポートして、別の理由ではありませんでした。しかし、私は、この仕事をするための、働く、適切な方法を持っています。 –

関連する問題