【发布时间】:2021-04-03 20:19:33
【问题描述】:
我想使用unittest 模块运行单元测试,这是我项目的文件组织:
frac
├── frac.py
├── __init__.py
└── test
└── run_tests.py
run_tests.py里面的代码是:
import unittest
from frac import Fraction
class RunFractionTests(unittest.TestCase):
def test_dunder_mul(self):
self.assertEqual(Fraction(1, 2) * Fraction(1, 2), Fraction(1, 4))
if __name__ == "__main__":
unittest.main()
问题是,当我使用python run_tests.py 运行run_tests.py 时,我收到一条错误消息,提示找不到模块frac,这是错误消息:
Traceback (most recent call last):
File "/home/maurothecreator/Área de Trabalho/Projects/HighMath/frac/test/run_tests.py", line 2, in <module>
from frac import Fraction
ModuleNotFoundError: No module named 'frac'
我是不是以错误的方式导入了这个,如果是这样,我该如何解决这个问题?
【问题讨论】:
-
是您的 pythonpath 上的顶级
frac目录吗?你如何独立运行frac.py?通过移动到它所在的目录? Python 将当前目录放在 pythonpath 中,因此即使您没有正确设置 pythonpath 以使用来自其他位置的 python 文件,“事情也可以正常工作”。喜欢frac/test。 -
@JLPeyret 我只是运行
python frac/test/run_tests.py然后我得到这个错误,我使用了echo $PYTHONPATH并且返回值只是一个空字符串 -
好吧,你有它。您需要正确设置您的 pythonpath。哦,如果你在终端使用 中的空格,你会很痛苦。
-
设置 python 路径的一种方法是使用
-epip flag 将您的工作区变成可安装的本地 pip。或者您可以使用 .pth 文件。或遵循 theeks 的建议,但在适当的 .bashrc-type 文件中执行。对我来说,最简单的是.pth。
标签: python unit-testing testing python-unittest