如何解决Python 多级导入
如果相对导入,我会遇到问题。目录结构为:
folder
app.py
src_1
__init__.py
database
db_declare.py
__init__.py
pages
page_1.py
df_prep.py
__init__.py
好的,现在我有:
#On app.py
from src_1.pages import page_1
#On page_1.py
from df_prep import df
#On df_prep.py
from database.db_declare import *
但我还是明白了
"*\folder\src_1\pages\page_1.py",line 9,in <module>
from df_prep import df
ModuleNotFoundError: No module named 'df_prep'
当我运行 app.py
时。我曾尝试将“..”添加到 sys.path
,但最终会添加到许多“..”。我试过了
谢谢你。我想保持脚本中的导入不变,这意味着如果两个脚本在同一个文件夹中,则没有理由在 from pages.df_prep import df
中写入 pages_1.py
。
我愿意接受建议,但我真的不想对文件结构进行太多更改。
解决方法
src_1
是一个包。 folder
不是,因此 app.py
不在包中(但其他所有内容都在包中)。
包中的相对导入需要 .
:
# in page1.py
from .df_prep import df
# in df_prep.py
from ..database.db_declare import *
在此处查看详细答案:Relative imports for the billionth time
,您能否将导入更改为:
#On app.py
from src_1.pages import page_1
#On page_1.py
from .df_prep import df
#On df_prep.py
from ..database.db_declare import *
,
请指定从 src_1 开始的完整路径。这是因为代码是从 app.py 的角度执行的。
#On page_1.py
from src_1.pages.df_prep import df
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。