我已将应用程序的API密钥包含在名为privateinfo.py的文件中,但出于安全考虑,.git忽略了它。我将密钥信息导入到init.py文件中,但当我对应用程序进行单元测试时,收到此错误, “来自.privateinfound导入密钥模块NotFoundError:没有名为'app.privateinfound'的模块”
这就是我将密钥导入init.py文件的方式
from .privateinfo import key
以下是如何设置我的目录的照片:
如您所见,privateinfo文件和init文件都在app目录中,而.gitinore则在根目录中
代码问题:您必须单独运行文件,可能是为了测试。在这种情况下,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
app
和tests
被认为是不同的模块;导入另一个模块时,导入其__init__.py
中定义的内容。如果你的应用程序__init__.py
是空的,你基本上不会从该模块加载任何内容相关问题 更多 >
编程相关推荐