关于module ‘XXX’ has no attribute 'XXX’的二三事
今天在学习调试程序的时发现调用包中本身就有的方法时,出现了该包中并未找到该方法这种情况AttributeError: module ‘face_recognition’ has no attribute ‘load_image_file’,这令我倍感吃惊。包内出现提示符的函数竟然没有找到该方法,确实有点荒谬。各种卸载重装无果之后,我启动了之前一个运行结果正确的文件试图寻找突破口,但遗憾的是也出现了同样的错误提示。这点让我有了一些想法,在通过查找文件夹内的文件后,我发现了曾经一个命名和那个module同名的文件,在查找资料后发现
该文件的存在使得import发生了歧义,使得本该导入包XXX的时候错误的指向了现在这个和包同名的文件,从而导致了上边的AttributeError: module ‘face_recognition’ has no attribute ‘load_image_file’。
只因之前命名的疏忽而导致浪费了一早上时间来排查问题,由此可见规范命名的重要性。
在此笔者提醒大家编程千万条,命名第一条。命名不规范,时间费一半。