关于在初始化模块中导入后运行的问题

关于在初始化模块中导入后运行的问题

from .cat.action run cat_run
from .dog.action run dog_run

我在animal 包里的 init 模块中写了这两句导入的语句

确实在与animal同级别的脚本test.py中直接导入下面的代码可以使用

from animal import dog_run


但是我在上述的init中运行会报错,为什么

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小轩 2020-12-22 15:27:41

同学,你好!
1. 根据同学提供的代码,同学导包时,run前面没有import关键字,run后面没有书写as,直接书写了别名,参考代码:
http://img1.sycdn.imooc.com//climg/5fe19f960926082605650270.jpg
2. __init__直接执行当前窗口,不支持相对路径,会报main错误,正确写法是:想直接执行__init__,导包时不能使用相对路径,只能使用绝对路径,因此需要将animal加入到导入路径,参考代码:
http://img1.sycdn.imooc.com//climg/5fe19fc0093fcd1107400439.jpg

  • 提问者 慕仔8113846 #1

    我自己写的时候是全的 ,有import和as  好像是复制过来的时候除了点问题,关键字没有复制到。

    那我还想问一下,别的脚本导入animal 包时相当于已经是通过一个路径找到的,所以不是绝对路径也可以导入;但是自己导入时就不行是吗?

    2020-12-23 09:50:32
  • 好帮手慕小轩 回复 提问者 慕仔8113846 #2

    同学,你好!同学理解的是正解,自己导包时要使用绝对路径

    2020-12-23 10:14:23
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师