Это не поддерживается по умолчанию в самом Python (то есть: ничего общего с PyDev) - я также пришел из Java-фона, поэтому, возможно, вам придется забыть некоторые из ваших концепций Java здесь:)
В Python, когда папка с __init__.py
найдена, этот пакет больше не будет искать по другим путям.Я думаю, что у setuptools есть некоторые хакеры, чтобы заставить это работать, и я смутно помню, что Python 3 может добавить некоторую поддержку, но пока я не думаю, что это вообще рекомендуется ... Это немного отличается от подхода Java - вPython, flat лучше, чем вложенный - может быть, вы знаете, но в противном случае, просто для удовольствия, запустите сеанс интерпретатора Python и выполните «import this»:)
Т.е.: короче, как только my_app/__init__.py
найден, он не будет пытаться разрешить подпапки my_app в любом другом месте в PYTHONPATH
Итак, у вас есть 2 подхода ... Обычно я делаю так, чтобы тесты были близки к модулю в пакете _tests.Т.е.:
/project
/project/src
/project/src/myapp
/project/src/myapp/__init__.py
/project/src/myapp/_tests
/project/src/myapp/_tests/__init__.py
/project/src/myapp/_tests/test_myapp.py
И другой подход (который, я должен сказать, мне нравится немного меньше, так как тесты «чувствуют» себя более отделенным от кода), будет иметь отдельный пакет для тестов:
/project
/project/src
/project/src/myapp
/project/src/myapp/__init__.py
/project/src/myapp_tests/__init__.py
/project/src/myapp_tests/test_myapp.py