zoukankan      html  css  js  c++  java
  • 模块导入失败问题

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

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

     导入模块源码如下:

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

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

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

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

    原因就是。。。

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

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

    那要怎么解决呢?

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

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

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

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

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

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

  • 相关阅读:
    Ubuntu 下配置ftp服务端
    mysql的sql文件的备份与还原
    Virtualbox后台管理之VBoxManage
    主从库延迟对项目质量的影响
    jenkins / ant / jmeter 持续集成接口自动化
    infer 检验IOS项目
    pmd静态代码分析
    利用线上数据验证系统 Gor
    python flask (一)
    python SQLAlchemy
  • 原文地址:https://www.cnblogs.com/hulk-1029/p/11532565.html
Copyright © 2011-2022 走看看