我有一个工作目录,如下所示:
project
src
data
+secrets.py
+data.py
+format.py
我在secrets.py
中有名为user
和pw
的变量。
我将变量data.py
导入到数据库中,如下所示:
from secrets import user, pw
这可行,但是现在我希望能够在format.py
中运行它:
from data.data import <function_name>
我得到一个Import Error: cannot import name 'user' from 'secrets'
由于format.py
与data.py
不在同一目录中,因此导入被中断,因为它找不到secrets.py
。如果我要更新data.py
:
from data.secrets import user, pw
我可以成功运行format.py
。但这会破坏data.py
!
我觉得我只是在完全错误地构造我的项目。有更好的方法可以做到这一点,还是可以解决导入错误?
我尝试将相对导入与..
一起使用,并显式使用src.data.secrets
,但这仍然会破坏data.py
答案 0 :(得分:0)
尝试from .secrets import user, pw
。我试过了,行得通。点号表示您正在从当前目录导入模块
答案 1 :(得分:0)
这应该有效。
from importlib import import_module
format = import_module("../format.py")
您可能必须使用,并且可能应该根据文档进行操作。
from importlib import import_module
format = exec_module(create_module(find_spec("../format.py)))