新的Python项目可以';t由于“故障”而无法运行测试;“恐怖”一词;

新的Python项目可以';t由于“故障”而无法运行测试;“恐怖”一词;,python,python-3.x,pytest,Python,Python 3.x,Pytest,今天我试着做一些练习,我创建了两个文件,“~/bankocr/bank.py”和“~/bankocr/tests/test\u working.py” 当我试图在控制台中执行“pytest”时,我出现了下一个错误: ImportError while importing test module '~/bankocr/tests/test_bank.py'. Hint: make sure your test modules/packages have valid Python names. Tr

今天我试着做一些练习,我创建了两个文件,“~/bankocr/bank.py”和“~/bankocr/tests/test\u working.py”

当我试图在控制台中执行“pytest”时,我出现了下一个错误:

ImportError while importing test module '~/bankocr/tests/test_bank.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
tests/test_bank.py:2: in <module>
    from bank import size_of
E   ImportError: No module named bank
导入测试模块“~/bankocr/tests/test\u bank.py”时导入错误。 提示:确保您的测试模块/包具有有效的Python名称。 回溯: 测试/测试组。py:2:in 来自银行的进口规模 E:没有名为bank的模块 我没有看到使用IDE创建新项目的文件之间的区别,但是,其中一个工作,另一个不工作


我忘了什么吗?

bank.py
test\u bank.py
不在同一文件夹中。您可以尝试使用相对导入

from..bank导入大小\u

此错误仅基于pythonpath。您应该在pytest.ini/tox.ini文件中引入该路径

请按照以下步骤操作:-

(1) 在父目录中创建pytest.ini文件

(2) 按以下方式编辑:-

[pytest]
python_paths = .  ~/bankocr/
然后执行代码。我预计,在创建上述文件后,您不会观察到错误

参考:-


相反,您可以按如下方式运行测试:

python -m bankocr.tests

它将运行tests文件夹中的所有测试模块。另外,在“~/bankocr/”处添加init.py导入其他模块,如bank.py

为什么说模块是从
~/bank/
导入的,而不是从
~/bankocr/
导入的?您是否尝试过从test\u bank import size\u of中选择
,可能是错误,抱歉,因为我在两个单独的文件夹中尝试过比较请研究放置模块的正确方式。使用相对路径导入会起作用,但它很难看而且不可用。真正的解决方案是:我首先尝试使用同一文件夹中的文件