【发布时间】:2011-04-14 10:45:45
【问题描述】:
我正在尝试为包含单元测试的 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,它也可以工作,但我真的不想维护它,它似乎只对测试有必要。
这是为什么呢?修复它的正确方法是什么?
【问题讨论】:
-
我想知道:在
setup.py test之前执行setup.py install可能是常见的做法吗? setuptools documentation 听起来不是这样,我的资源应该自动放在sys.path上。也许nose.collector不知道我的package_dir基本目录? -
你是如何在 testcore.py 中导入核心的?你的 sys.path/PYTHONPATH 到底是什么?
标签: python setuptools distutils