python - PyDev PYTHONPATH 不适用于单独的测试和 src 目录

标签 python

这可能是一个菜鸟问题。为此,我深表歉意,但到目前为止我找不到解决方案。 简而言之,由于某种我不明白的原因,我无法在测试中从我的 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 中的运行配置设置,它表明当我执行测试时,srctests 都在 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/

相关文章:

python - 我必须将邮件存储在数据库中吗?

python - pygame 显示没有改变

python - 登录时从 url 检索数据

python - 找不到文件错误 : [Errno 2] when packaging for PyPI

python - 如何在 python 中创建日期对象?

Python:从两个列表构建字典

python - 如何在 Django 1.5+ 中将 settings.LOGIN_URL 设置为 View 函数名称

python - 带有 sizer 的 wxpython 布局

python - 如何在 tkinter 按钮中使用符号字体? Python

python - Python中如何判断一个流是文本流还是二进制流?