从x导入y模块NotFoundError:没有名为“x”的模块

2024-05-08 11:27:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我已将应用程序的API密钥包含在名为privateinfo.py的文件中,但出于安全考虑,.git忽略了它。我将密钥信息导入到init.py文件中,但当我对应用程序进行单元测试时,收到此错误, “来自.privateinfound导入密钥模块NotFoundError:没有名为'app.privateinfound'的模块”

这就是我将密钥导入init.py文件的方式

from .privateinfo import key

以下是如何设置我的目录的照片:

enter image description here

如您所见,privateinfo文件和init文件都在app目录中,而.gitinore则在根目录中


Tags: 模块文件pygit目录api信息app
2条回答

代码问题:您必须单独运行文件,可能是为了测试。在这种情况下,python不会将其识别为模块

这里有一个解决方案

写入:from app.privateinfo import key

注意:请记住,只有当您从外部运行它时,它才会起作用。i、 e.您在其中编写上述语句的文件必须是config, forms, models, run中的任何文件

要单独运行文件,请执行以下操作: 假设您在文件refactor.py中编写了上述导入语句,并希望对其进行测试。只需在app之外创建一个文件runner.py,然后写入import app.refactor。现在执行runner.py

说明:这将运行refactor,同时将app视为模块,因此,您的导入将正常工作

在你的应用程序中__init__.py添加from .app import *

然后,在测试文件中可以导入app包。测试中的__init__.py可以为空;它将测试定义为一个不同的包

例如,在测试文件中,可以将import语句更改为from app.privateinfo import key

apptests被认为是不同的模块;导入另一个模块时,导入其__init__.py中定义的内容。如果你的应用程序__init__.py是空的,你基本上不会从该模块加载任何内容

相关问题 更多 >