我仍在尝试如何创建包,下面是一个文件结构,它说明了我的问题:
/main_package/
__init__.py
script1.py
sub_package/
__init__.py
model.py
在main_package
的__init__.py
内,假设我有:
在script1.py
内,我有:
from sub_package import model
...
这不管用。当我尝试导入main_package
时,在以下一组调用中出现错误:import main_package.script1
->;from sub_package import model
显然,script1.py
中的from sub_package import model
不起作用。在
我尝试了以下方法:
from main_package.sub_package import model
from . import sub_package.model
from .sub_package import model
他们都没用。很抱歉,如果我在某个地方犯了一个愚蠢的错误,但是解决我的问题的方法是什么呢?在
更新:好吧,有人问过这到底是怎么发生的,所以我会贴出我收到的实际错误消息以及我的实际结构和过程。对不起,名字已经从上面改了。在
以下是导致错误的包的实际包结构:
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'
顺便说一句,模型确实存在。在
好吧,似乎我对整个包结构感到困惑。参考update-in-the Models
__init__.py
文件中的结构,我正在导入import Models.model_main
等。。。为了让它工作,我还需要from . import model_main
。顺便谢谢你的帮助。在相关问题 更多 >
编程相关推荐