[英]Importing modules that import other modules from other directories in Python 3.6
我有一个如下所示的工作目录:
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
尝试from.secrets import user, pw
。 我试过了,它有效。 点表示您正在从当前目录导入模块
这应该有效。
from importlib import import_module
format = import_module("../format.py")
根据文档,您可能必须使用并且可能应该使用。
from importlib import import_module
format = exec_module(create_module(find_spec("../format.py)))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.