Python包相对导入报错Attempted relative import问题求助
报错原因
这个错误是因为你没有遵循Python包的导入规则,你的bipy是一个结构化的Python包,直接在包内部目录下运行脚本、导入同包模块时,Python无法识别当前模块属于哪个包,就会触发相对导入报错。
解决方法
方法1(最规范):
将prova.py移动到bipy包的上层目录,也就是/Desktop/CD_BEST/Bipartito/bipy-master/路径下,同时修改prova.py的导入代码为:from bipy import bipartite_class此时Python会将
bipy识别为顶层包,包内的所有相对导入语句都可以正常运行。方法2(不移动文件的临时方案):
如果你一定要把prova.py放在bipy目录下,可以手动将包根目录添加到Python的模块搜索路径中,修改prova.py代码如下:import sys # 替换为你自己的bipy包根目录路径 sys.path.append("/Desktop/CD_BEST/Bipartito/bipy-master") from bipy import bipartite_class额外检查项:
请确认所有包目录下的初始化文件命名正确,必须是双下划线包裹的__init__.py,你报错中显示的nes/_init_.py为单下划线命名,属于错误命名,会导致Python无法识别该目录为包模块,也会引发导入错误,需要修正命名。
内容的提问来源于stack exchange,提问作者Dario
相关产品推荐
相关产品推荐

