Я пытаюсь создать установочный пакет для проекта Python с включенными модульными тестами. План моего проекта выглядит следующим образом:
setup.py
src/
disttest/
__init__.py
core.py
tests/
disttest/
__init__.py
testcore.py
Мой setup.py
выглядит так:
from distutils.core import setup
import setuptools
setup(name='disttest',
version='0.1',
package_dir={'': 'src'},
packages=setuptools.find_packages('src'),
test_suite='nose.collector',
tests_require=['Nose'],
)
Файл tests/disttest/testcore.py
содержит строку from disttest.core import DistTestCore
.
Запуск setup.py test
теперь дает ImportError: No module named core
.
После setup.py install
, python -c "from disttest.core import DistTestCore"
работает нормально. Это также работает, если я добавлю import core
в src/disttest/__init__.py
, но я не хочу поддерживать это, и это только кажется необходимым для тестов.
Почему это? И как правильно это исправить?