我正在努力让导入为我的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式的方法是什么?
https://stackoverflow.com/questions/50900030
复制相似问题