首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python中使用unittest的相对导入

Python中使用unittest的相对导入
EN

Stack Overflow用户
提问于 2014-02-01 05:59:25
回答 3查看 20.1K关注 0票数 39

我正在尝试使用Python单元测试和相对导入,但我似乎无法理解它。我知道有很多相关的问题,但到目前为止,这些问题都没有帮助。如果这是重复的,我很抱歉,但我真的很感激任何帮助。我试图使用PEP328 http://www.python.org/dev/peps/pep-0328/中的语法,但我一定是弄错了。

我的目录结构是:

project/
    __init__.py
    main_program.py
    lib/
        __init__.py
        lib_a
        lib_b
    tests/
        __init__.py
        test_a
        test_b

我使用以下命令运行测试:

python -m unittest test_module1 test_module2

test_a需要同时导入lib/lib_a和main_program。这是我尝试用于导入的来自test_a的代码:

from ..lib import lib_a as lib
from ...project import main_program

两者都会引发此错误:

ValueError: Attempted relative import in non-package

我所有的初始化.py文件当前都是空的。

任何具体的建议都将不胜感激!

编辑:

这可能是答案:Python Packages?我还在验证这是否可行。

编辑II:

为了澄清,在这一点上,我尝试以3种不同的方式运行我的测试文件:

project/tests $ python -m unittest test_a
project/tests $ python -m test_a
project/tests $ ./test_a

这三个都失败了,出现的错误与上面的相同。当我在项目目录中使用相同的三种语法时,我得到这个错误:

ValueError: Attempted relative import beyond toplevel package

再次感谢。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21490860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档