这可能是一个菜鸟问题。为此,我深表歉意,但到目前为止我找不到解决方案。 简而言之,由于某种我不明白的原因,我无法在测试中从我的 src 目录访问模块。 我的项目设置如下所示:
src/package/module.py
tests/package/module_test.py
我的测试大致如下:
import package
import unittest
class module_test(TestCase):
def testSomeMethod(self):
m = package.SomeClass() #there is class of that name in module.py
我检查了 PyDev 中的运行配置设置,它表明当我执行测试时,src
和 tests
都在 PYTHONPATH 上。但是当我尝试运行此测试时,收到错误 'module' object has no attribute 'SomeClass'
。
我做错了什么?
最佳答案
当您执行导入包
时,您导入的是包,而不是其中的模块。如果要导入模块,则需要执行 from package import module
(然后将该类引用为 module.SomeClass
,而不是 package.SomeClass
)。
包是模块组的容器。它们不会神奇地允许您访问任何模块内的所有内容(尽管您可以让它们自动导入其模块)。您仍然需要导入包中的各个模块。
关于python - PyDev PYTHONPATH 不适用于单独的测试和 src 目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11811700/