尝试用相对导入的方式在一个包的下级模块中导入另一个同级包的下下级目录,导入失败。但用绝对路径导入是ok的。不是很明白为什,求解。

来源:7-15 相对导入和绝对导入 二

leon_t

2018-01-07

http://img.mukewang.com/szimg/5a522d760001f1d928801800.jpg

写回答

2回答

慕斯卡8323326

2018-02-13

我觉得:

是可以通过改变入口文件位置来搞定,但是那也改变了顶级包位置(变相的把不同的顶级包的文件部署在一个顶级包的子包下了),那么不同顶级包(不改变main.py情况下),比如package2和package3内部的文件相互不能用相对导入。

导入就会会报

attempted relative import beyond top-level package

这个错误!

所以相对导入还是用在同一顶级包内部才对!

0
0

7七月

2018-01-08

这个和你的运行文件位置又关系,建议把这几个小节看完。

0
0

Python3.8系统入门+进阶 (程序员必备第二语言)

语法精讲/配套练习+思考题/原生爬虫实战

14447 学习 · 4438 问题

查看课程