【发布时间】:2025-12-30 08:05:04
【问题描述】:
我有一个简单的目录结构:
proj/
src/
__init__.py
foo.py
bar.py
test/
__init__.py
test_foo.py
test_foo.py
import unittest
import sys
sys.path.append('../src')
from src import foo
class TestFoo(unittest.TestCase):
def test_foo(self):
foo.start()
if __name__ == '__main__':
unittest.main()
foo.py
import bar
def start():
bar.do_stuff()
在运行我的测试时(我正在使用 vscode),我收到以下错误:
Failed to import test module: test_foo
Traceback (most recent call last):
File "~/.pyenv/versions/3.8.6/lib/python3.8/unittest/loader.py", line 436, in _find_test_path
module = self._get_module_from_name(name)
File "~/.pyenv/versions/3.8.6/lib/python3.8/unittest/loader.py", line 377, in _get_module_from_name
__import__(name)
File "~/proj/test/test_foo.py", line 6, in <module>
from src import foo
File "~/proj/src/foo.py", line 1, in <module>
import bar
ModuleNotFoundError: No module named 'bar'
不知道为什么在导入 src/foo 时测试找不到 src/bar
【问题讨论】:
-
从 test_foo.py 你使用“from src import foo”然后从 foo.py 你只使用“import bar”。我会怀疑你的 proj/src/__init__.py。
-
__init__.py只是空文件
标签: python visual-studio-code python-unittest