导入从Python 3.6中的其他目录导入其他模块的模块

导入从Python 3.6中的其他目录导入其他模块的模块,python,import,module,Python,Import,Module,我有一个如下所示的工作目录: 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> 我可以成功

我有一个如下所示的工作目录:

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>
我可以成功运行
format.py
。但是那样会破坏
data.py

我觉得我只是从一开始就把我的项目结构完全搞错了。是否有更好的方法来执行此操作或修复导入错误的方法


我尝试过使用相对导入和
并显式使用
src.data.secrets
,但这仍然会破坏
data.py

尝试从.secrets导入用户pw进行
。我试过了,成功了。点表示您正在从当前目录导入模块

这应该有效

来自导入lib导入模块
格式=导入模块(“../format.py”)
根据文档,您可能必须使用,也可能应该使用

来自导入lib导入模块
format=exec_模块(创建_模块(find_spec(../format.py)))

这仅在运行format.py时有效。当我运行data.py时,会出现以下错误:ModuleNotFoundError:没有名为“main.secrets”的模块;“main”不是包
from data.secrets import user, pw