繁体   English   中英

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

[英]Importing modules that import other modules from other directories in Python 3.6

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

project
  src
    data
      +secrets.py
      +data.py
    +format.py

我在secrets.py中有名为userpw的变量。

我在data.py中导入变量以连接到数据库,如下所示:

from secrets import user, pw

这可行,但现在我希望能够从format.py中运行它:

from data.data import <function_name>

我收到Import Error: cannot import name 'user' from 'secrets'

由于format.pydata.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM