2017-10-05 3 views
0

を動作を停止しました(親パッケージ)Pythonの輸入は突然、私は次のような構造を持っていた私の現在のプロジェクトで

この手順をサブパッケージについても繰り返しました。

その後、私は、私はちょうど書き.hereIsAnotherOne.pyからSomeDataSourceをインポートしたいとき:

from parentPackage import SomeDataSource 

は、これは数週間のカップルのために完璧に働いたが、今突然動作を停止しました。

サブパッケージから__init__.py個のファイルを削除しようとしましたが、そのファイルをparentPackageの__init__.pyでインポートしようとしましたが、動作しません。

これはどのようにすることができますか?私は__init__.pyファイルに触れていない、私はparentPackageに新しいファイルを追加しました。

ここで何か問題がありますか?これはいつも私のために働いた。私はこの問題に対する多くの答えがあることを理解していますが、私の問題の解決策はありません。

ノート:私はPyCharmをIDEとして使用していますが、PyCharmはインポートが有効であると認識し、何も警告なしで実行時まで認識します。

ありがとうございました!

PS:私はあなたが円形輸入持っpython3.6

+0

Pythonで絶対インポートを使用することをお勧めします: 'from parent_package.sub_package.module import some_function'。スタイルのためにPythonのPEP-8もチェックしてください。 – tuned

答えて

0

を実行している:parentPackage

を、あなたはparentPackageからインポート、hereIsAnotherOnehereIsAnotherOne からインポートします。そのソースモジュールsomeDataSource.pyから直接SomeDataSourceをインポートするか、それを使用する関数内でローカルにインポートすることで解決しなければなりません。

どちらの方法でも、循環インポートの発生は、現在のパッケージアーキテクチャを再構築することについて長く考えなければなりません。

+0

こんにちは!したがって、 '.someDataSource.py import SomeDataSource'は正しく動作するはずですか?残念ながらそれはしません。これらの輸入は相対的なものではないか? –

関連する問題