python导入模块失败_模块导入失败问题

最近遇见一个Python模块导入自己踩到的坑,搞了好久才整明白,记录一下,也给在同样采坑的小伙伴借鉴一下。

错误现象很明显,相信大家遇到的报错都一样,但是就是不知道为什么,报错如下:

1450695-20190917111119731-78075306.png

导入模块源码如下:

1450695-20190917111212052-114322993.png

百思不得其解啊,各种百度和研读女神博客,感觉模块导入这块还是相对容易理解和接受的,为什么就是报错呢。

这里推荐一下女神写的很详细的一篇博客:

https://www.cnblogs.com/Eva-J/articles/7292109.html

好了,进入正题吧,是什么原因导致报这个错呢,上面一行也是一样的方法导入,怎么就没报错。奇怪吧?

原因就是。。。

你导入的模块,也导入了你。不能相互导入!!!

就是server_common模块中已经导入了server_auth模块,你现在又在server_auth模块中再导入server_common,这个样子是不行滴。

那要怎么解决呢?

找到具体原因了,事情就好办了,把共用的方法提出来或者都写到一个模块里,然后只导入一个模块就好了。就是这么简单!!

另外,我有个习惯就是在pycharm里写好的代码要在dose或其他环境执行一下是否可用,避免出现开发环境运行没问题,到了生产环境就运行失败的情况。

结果就出现了以下报错,pycharm运行ok,在dose窗口运行就报找不到模块的错误。如下图:

1450695-20190917164143253-27849799.png

尽管start_server.py文件里已经添加了如下信息:

BASE_DIR = os.path.dirname(os.path.dirname(__file__))

sys.path.append(BASE_DIR)

原因是如果只是通过相对路径执行的话,代码里的添加路径信息就没法把正确的路径添加到sys.path里,才导致找不到对应的模块,pycharm是帮你把文件的绝对路径添加上了,所以才没有报错。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值