Hen*_*ger 6 python distutils setuptools
我正在尝试使用包含的单元测试为Python项目创建一个安装包.我的项目布局如下:
setup.py
src/
disttest/
__init__.py
core.py
tests/
disttest/
__init__.py
testcore.py
Run Code Online (Sandbox Code Playgroud)
我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'],
)
Run Code Online (Sandbox Code Playgroud)
该文件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,但我真的不希望维护和似乎只有必要的测试.
这是为什么?什么是解决它的正确方法?
您可能需要仔细检查这一点,但看起来您的测试正在导入目录disttest中的包tests/,而不是目录中的待测试包src/。
为什么需要使用与被测包同名的包?我只需将 testcore 模块移至测试目录,或重命名tests/disttest包并完全避免潜在的命名冲突。
无论如何,您希望import pdb; pdb.set_trace()在失败的导入之前插入一行,并使用不同的导入语句来查看从哪里(import sys; sys.modules['modulename'].__file__是您的朋友)导入的内容,以便您更好地了解出了什么问题。
| 归档时间: |
|
| 查看次数: |
1129 次 |
| 最近记录: |