が、私はこのようになりますプロジェクトを持って失敗します。Pythonの絶対的な輸入は
my_project/
__init__.py -- empty
run.py
datacheck/
__init__.py -- empty
datacheck.py -- containing class DataCheck(object)
config.py -- containing BusinessConfig(object)
business.py -- containing class BusinessCheck(DataCheck)
マイPYTHONPATH
それに/ MY_PROJECTを有するように構成されています。
run.pyでは、私は次のコードを持っている:
from datacheck.business import BusinessCheck
business = BusinessCheck()
business.check_data()
business.pyでは、私は失敗し、次の輸入を持っている:
from datacheck.config import BusinessConfig
from datacheck.datacheck import DataCheck
from .config import BusinessConfig
作品のような相対的なインポート - しかし、私は絶対的なインポートが好まれることを多数のスレッドで読んだ。簡単なテストを行うには
は、私も次のように作成しました:
myproject/
__init__.py -- empty
run_test.py
test/
__init__.py -- empty
test1.py -- containing class Test1(object)
test2.py -- containing class Test2(Test1)
run_test.py輸入をしてTest2
クラスを実行し、これは失敗しませんでした。
私はちょっと気まずいままでしたが、datacheckの絶対的なインポートがうまくいかない理由を理解できません - 誰でも説明できますか?
'from datacheck.business import Business'しかし' business.py - クラスを含むBusinessCheck(DataCheck) '...クラス' Business'はどこですか? – eumiro
'datacheck'に' __init __。py'ファイルもありますか?このファイルはディレクトリをパッケージにし、空にすることができます。 –
@eumiro:申し訳ありませんが、間違いはありません - 修正してください。 –