从测试模块导入

时间:2020-08-31 22:41:14

标签: python

我在tests/__init__.py中有这个构造:

try:
   import mock
except ImportError:
   from unittest import mock

和其他我拥有的文件

from tests.mock import Mock

但是,它不起作用。 Python 3.8抱怨“ ModuleNotFoundError: No module named 'tests.mock'”。任何想法,如何正确执行?

1 个答案:

答案 0 :(得分:2)

首先,要指定模块tests,您的文件必须命名为__init__.py(因此,在名称​​之前和之后的 中使用两个下划线,例如{{ 1}}等。

仅当__init__是程序包的名称时,路径tests.mock才有效(但不是,它只是一个模块)。为实现此目的,您应该tests然后使用import tests(为方便起见也可以分配tests.mock.Mock)或使用Mock = tests.mock.Mock并使用它。

以下是一些后续文档,但更多地关注于导入的内部: https://docs.python.org/3/reference/import.html