gpt4 book ai didi

Python:从同一个包导入子模块或子包

转载 作者:太空狗 更新时间:2023-10-30 01:37:11 25 4
gpt4 key购买 nike

我仍在尝试弄清楚如何创建包,这是一个演示我的问题的文件结构:

/main_package/
__init__.py
script1.py
sub_package/
__init__.py
model.py

main_package__init__.py 中,假设我有:

import main_package.script1
...

script1.py 中我有:

from sub_package import model
...

这行不通。当我尝试导入 main_package 时,我在以下一组调用中遇到错误:import main_package.script1 -> from sub_package import model

显然 script1.py 中的 from sub_package 导入模型 不起作用。

我尝试了以下方法:

从 main_package.sub_package 导入模型

来自 .导入 sub_package.model

从 .sub_package 导入模型

而且它们都不起作用。抱歉,如果我在某个地方犯了一个愚蠢的错误,但解决我的问题的方法是什么?


更新:好的,有些人确切地问这是如何发生的,所以我将发布我收到的实际错误消息以及我的实际结构和过程。抱歉,现在名称已从上面更改。

这是导致错误的包的真实包结构:

script.py
/MCMC2/
__init__.py
main_script.py
ExoData.py
Models/
__init__.py
model_main.py

我在终端中运行 script.py(即 ipython script.py [args])并收到以下错误消息(我删除了问题之后出现的所有内容消息并将其替换为 ... 以使其更清晰)。

ImportError                               Traceback (most recent call last)
/home/usr/script.py in <module>()
1 import pymc
----> 2 from MCMC2 import ExoData
...

/home/usr/MCMC2/__init__.py in <module>()
...
----> 4 import MCMC2.main_script
...

/home/usr/MCMC2/main_script.py in <module>()
1 try: from Models import model_main
----> 2 except: from .Models import model_main
...

/home/usr/MCMC2/Models/__init__.py in <module>()
----> 1 import Models.model_main
...

ImportError: No module named 'Models'

顺便说一句,模型确实存在。

最佳答案

好吧,我似乎对整个包结构感到困惑。引用更新中的结构 - 在 Models __init__.py 文件中,我将导入作为 import Models.model_main 等......为了让它工作,我需要 来自。也导入 model_main。顺便感谢您的帮助。

关于Python:从同一个包导入子模块或子包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40246103/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com