- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试为包含单元测试的 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 安装
后,python -c "from disttest.core import DistTestCore"
工作正常。如果我将 import core
放入 src/disttest/__init__.py
中,它也会起作用,但我真的不想维护它,它似乎只是测试所必需的。
这是为什么呢?什么是正确的修复方法?
最佳答案
你可能想仔细检查一下,但看起来你的测试正在导入 tests/
目录中的 disttest
包,而不是 package-under-从 src/
目录进行测试。
为什么要使用与被测包同名的包?我只需将 testcore 模块移至测试目录,或重命名 tests/disttest
包,从而完全避免潜在的命名冲突。
无论如何,你都想插入一个import pdb; pdb.set_trace()
行就在失败的导入之前,并使用不同的导入语句来查看从哪里导入的内容 (import sys; sys.modules['modulename'].__file__
是你的 friend )所以你可以更好地了解问题出在哪里。
关于python - 运行 setup.py 测试时子包出现 ImportError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5662052/
根据标题,您可以看到问题的演示 here . 这是HTML代码: 这是CSS代码: #inner{ height: 100%; width: 100%; bor
我有一个包含 div 和两个子 div。 所有的 div 都是相同的宽度,子 div 出现在彼此的顶部;包含div的高度为100%,第二个子div的高度固定为25px。 如果没有 javascript
我是一名优秀的程序员,十分优秀!