文章目录
最近在学习别人写的程序,有位大神把其他经典算法都实现了,baseline包全弄好了,我真是兴冲冲,提起袖子膜拜大神,没想到环境都build好了,在引自己的各种模块时频频报错,深知是引用的问题,Google了半天都没弄好,最后经过耐心探索
解决方案
先把出现报错的解决方案放在前面:
检查哪种错误:
ValueError: Attempted relative import in non-package
说明存在相对导入语句的模块,不能直接运行,把相对导入改成绝对引用。
No module named ‘…’
说明路径不对,找不到模块。
如果是绝对导入,一个模块只能导入自身的子模块或和它的顶层模块同级别的模块及其子模块
如果是相对导入,一个模块必须有包结构且只能导入它的顶层模块内部的模块
- 找不到模块时,先看看有没有
__init__.py
文件在该包里,告诉导入指令我包在这。 - 如果要把相对导入改为绝对导入,
from __future__ import absolute_import
(仅禁用隐式相对导入),Python2.x 缺省为相对路径导入,Python3.x 缺省为绝对路径导入。 - 万能法。直接把该文件夹看作一个workspace