首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何让导入与python包和测试包一起工作

如何让导入与python包和测试包一起工作
EN

Stack Overflow用户
提问于 2018-06-18 04:01:26
回答 2查看 40关注 0票数 0

我正在努力让导入为我的python项目工作。我已经创建了一个测试项目来说明我的问题。这是Python 3的版本。

我的目录结构如下:

project/
  test.sh
  packageA/
     __init__.py
     moduleA.py
     test/
        __init__.py
        test_moduleA.py

test.sh的内容是python3 packageA/test/test_moduleA.py

两个__init__py都为空。

这是moduleA.py

class A:
  def doSomething(self):
    print("Did something")

这是'test_moduleA.py`:

import unittest
from packageA.moduleA import A

class TestModuleA(unittest.TestCase):
  def testSomething(self):
    a = A()
    self.assertTrue(a.doSomething() == "Did Something")

if __name__ == '__main__':
    unittest.main()

当我运行test.sh时,我得到的错误是:

[project] $ ./test.sh 
Traceback (most recent call last):
  File "packageA/test/test_moduleA.py", line 2, in <module>
    from packageA.moduleA import A
ModuleNotFoundError: No module named 'packageA'
[project] $ 

我已经尝试在`test_moduleA.py中使用相对导入,如下所示:

from ..moduleA import A

在这种情况下,我得到的错误如下所示:

[project] $ ./test.sh 
Traceback (most recent call last):
  File "packageA/test/test_moduleA.py", line 2, in <module>
    from ..moduleA import A
ValueError: attempted relative import beyond top-level package
[project] $

我怎样才能让它正常工作?Pythonic式的方法是什么?

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

https://stackoverflow.com/questions/50900030

复制
相关文章

相似问题

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