我在同一名称空间中有两个包含测试,结构如下:
Package-1/namespace/__init__.py
Package-1/namespace/module1/__init__.py
Package-2/namespace/__init__.py
Package-2/namespace/module2/__init__.py
Package-2/tests/foo_test.py
使用pip
正确安装了包1。现在Package 2依赖于Package 1,因此foo_test
包含行
import namespace.module1
当我尝试从目录nosetests ./tests/foo_test.py
运行Package-2
时,我收到导入错误,因为Python抱怨它找不到namespace.module1
。我很确定问题是它试图在路径Package-2/namespace
中搜索当前不存在的目录module1
。我希望Python从已安装的软件包中加载module1
,而不是在当前路径中搜索它。
我不完全确定,但我认为here解释了类似的问题,但根据我的理解,这应该已经解决。有没有人知道如何解决这个问题?或者我应该以不同的方式构建事物?
答案 0 :(得分:0)
至少在Python 3.3+中有一个解决方案。必须删除__init__.py
中存在的Package-i/namespace/
个文件。我不明白为什么解决这个问题,但它适用于我的情况......