动机
遇见这个问题好几次了,今天调程序又遇到了,忘了之前是怎么解决的了,搞了半天,算是解决了吧。。。应该有更好的方法,但是有可能dig的比较深,如果要详细的再去看的话时间要花上老半天,这里就分享一个比较简单的方法。
报错及报错原因
报错
我最近在调BART的代码,刚刚开始,对于初学者来讲真是rilegou。。。论文看懂了,代码还是看不懂。。。这不重要,下图是我的代码结构
![](https://img-blog.csdnimg.cn/img_convert/e1927900ab66c02b189b15340271dea1.png)
图1 代码结构及报错位置
这个错误就是你直接run这文件出来的,错误长这样
![](https://img-blog.csdnimg.cn/img_convert/ce6506ac68d6a57ffd96058702b681fe.png)
图2 错误的样子
报错原因
报错的原因我是根据这篇blog得出来的,虽然这个大佬写的很有道理,但是他的方法用到我这里好像有些麻烦。所以我根据他说的报错原因自己改了下代码。报错的原因就是
![](https://img-blog.csdnimg.cn/img_convert/5771ce949a53c1e6b1931c38ee69c562.png)
图3 报错原因
也就是我这个modeling_bart.py文件直接运行得时候,'__name__'和'__package__'这两个变量不对劲。我在代码中加了个print打印看了一下
![](https://img-blog.csdnimg.cn/img_convert/6e53bcb3dc47bbd362cdb2636712934b.png)
图4 查看__name__和__package__
发现__name__ = 'modeling_bart', __package__ = None.这里问题就出来了,你的__package__ = None, 那你用'..'或是'...'怎么会索引到?
问题解决
ok,问题马上就解决了。你只需要在你当前报错得文件,我这里是这个'modeling_bart.py'里,改一下这个__package__变量的值就好了。
![](https://img-blog.csdnimg.cn/img_convert/8f6ffc64cad8e05e3a1acd424af4cbe3.png)
图5 修改下__package__的值
__package__这个值的修改形式仿照上面这个图,就是你的顶层的文件夹然后一直'.'到你当前文件所在的文件夹,这样。
一些意料之外
不保证小伙伴应用了这个方法就解决了问题哈,要是你的包结构不完整,比如没有'__init__.py'这个文件等一些原因,你的错误还存在,可能需要再看看其他大佬们的经验。