gpt4 book ai didi

python - 运行 setup.py 测试时子包出现 ImportError

转载 作者:太空狗 更新时间:2023-10-30 00:18:13 26 4
gpt4 key购买 nike

我正在尝试为包含单元测试的 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com