プロジェクトの構造は次のとおりです。
/root
- /crawler
- /basic
- agent.py
- settings.py
- main.py
- /tests
- /basic
- test_agent.py
- test_main.py
main.py
インポートagent.py
、およびagent.py
インポートsettings.py
。で実行main.py
し、インタープリターをsys.path に/root/crawler
追加する/root/crawler
(そこにあるため) ので、正常に動作します。main.py
agent.py
import settings
しかし、 nose underを使用して単体テストを実行すると/root
、 を除いて他のすべてのテストは問題test_agent.py
ありませんsettings
。
/root/crawl
テスト対象のモジュールをインポートする前に内部のパスに追加すると機能test_agent.py
しますが、それは悪い習慣と見なされますよね?
もしそうなら、どのように回避するのImportError
ですか?