【问题标题】:Error during import a module running tests导入运行测试的模块时出错
【发布时间】: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 路径的一种方法是使用 -e pip flag 将您的工作区变成可安装的本地 pip。或者您可以使用 .pth 文件。或遵循 theeks 的建议,但在适当的 .bashrc-type 文件中执行。对我来说,最简单的是.pth

标签: python unit-testing testing python-unittest


【解决方案1】:

在运行python run_tests.py之前尝试在控制台中添加以下内容

export PYTHONPATH="${PYTHONPATH}:<path_to_frac>"

【讨论】:

    猜你喜欢
    • 2011-06-13
    • 1970-01-01
    • 2012-10-14
    • 1970-01-01
    • 2015-12-05
    • 1970-01-01
    • 1970-01-01
    • 2020-12-06
    • 2020-08-16
    相关资源
    最近更新 更多