Python中ImportError错误的详细解决方法

目录
  • ImportError: No module named XXX 错误解决
    • 问题
    • 解决
  • 补充:ImportError: libGL.so.1: cannot open shared object file: No such file or directory
    • 报错信息
    • 报错分析
    • 解决方案
  • 总结

ImportError: No module named XXX 错误解决

问题

错误:ImportError: No module named XXX

在Python的工程中,偶尔会遇到文件无法引用的情况,即PyCharm IDE支持文件跳转,但是当文件执行时,找不到模块。

例如,错误如下:

Traceback (most recent call last):
  File "utils/average_clinic.py", line 17, in <module>
    from utils.file_utils import listdir_files, show_string
ImportError: No module named file_utils

解决

首先,在py文件的顶部,引入根目录,如

import os
import sys

p = os.path.dirname(os.path.dirname((os.path.abspath(__file__))))
if p not in sys.path:
    sys.path.append(p)

# print p  # 显示路径

其次,检查文件的Working directory,位置:

第一步是导入工程路径,第二步是检查文件的工作目录。优先检查工作目录,其次检查工程路径。同时,要注意PyCharm自动生成文件引用不一定正确,如:

from file_utils import listdir_files, show_string
# 错误的引用,文件位于同一目录下,不使用包名
# from utils.file_utils import listdir_files, show_string

补充:ImportError: libGL.so.1: cannot open shared object file: No such file or directory

报错信息

ImportError: libGL.so.1: cannot open shared object file: No such file or directory

报错分析

在使用opencv-python的过程中,只是通过pip安装了cv相关的python包,但是没有关注cv对于底层系统中部分共享库的依赖。这个在docker中是一个常见的错误。

解决方案

方案1: 安装cv2的依赖

这里只是举例部分环境,至于具体需要安装哪些库,对应的库名称,需要参考你本身的系统查询后,方可执行。

apt-get install ffmpeg libsm6 libxext6 -y

方案2: 安装python3-opencv或者opencv-python-headless

可以通过安装python3-opencv或opencv-python-headless库来实现便捷的处理依赖。

apt-get install python3-opencv -y
apt-get install opencv-python-headless -y

总结

到此这篇关于Python中ImportError错误的文章就介绍到这了,更多相关Python ImportError错误内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 详解python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'如何解决

    python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'的解决方法: 1.原因是官网的是python2语法写的,看官手动把官网的HTMLTestRunner.py改成python3的语法: 参考:http://bbs.chinaunix.net/thread-4154743-1-1.html 下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html 修改后下载地址:

  • 从零学python系列之新版本导入httplib模块报ImportError解决方案

    之前用Python 2.7版本的httplib做接口测试时,运行代码都是正常的, 最近开始用Python 3.3之后,再去看以前的代码,发现import httplib出现错误:Unresolved import :httplib, 运行代码时也报错:ImportError: No module named 'httplib' 查找各种资料发现原来Python 2.x中的"httplib"模块在Python 3.x中变成了"http.client",就怪之前只了解了

  • Windows环境下Python3.6.8 importError: DLLload failed:找不到指定的模块

    *在起初pip install matplotlib时,主动安装到当时最新版本(matplotlib==3.3.2),在StackOverflow以及国内众多帖子中总结以下解决方案 matplotlib依赖库版本不匹配问题(解决问题看下面) 本人在经历过无数次尝试matplotlib相关依赖库 numpy scipy 等安装卸载 找到所有matplotlib依赖库正确关系如下图所示,让众生少走些弯路,多留些头发. matplotlib官网链接如下图 链接: https://matplotlib.

  • Python中ImportError错误的详细解决方法

    目录 ImportError: No module named XXX 错误解决 问题 解决 补充:ImportError: libGL.so.1: cannot open shared object file: No such file or directory 报错信息 报错分析 解决方案 总结 ImportError: No module named XXX 错误解决 问题 错误:ImportError: No module named XXX 在Python的工程中,偶尔会遇到文件无法引

  • Python中MYSQLdb出现乱码的解决方法

    本文实例讲述了Python中MYSQLdb出现乱码的解决方法,分享给大家供大家参考.具体方法如下: 一般来说,在使用mysql最麻烦的问题在于乱码. 查看mysql的编码: 命令:  复制代码 代码如下: show variables like 'character_set_%'; 可以看到如下结果: character_set_client为客户端编码方式: character_set_connection为建立连接使用的编码: character_set_database数据库的编码: ch

  • python中dlib库的详细安装方法

    一.下载dlib 下载自己需要的. 二.安装需要的库 准备安装dlib前安装的库: 更新 pip.setuptools.wheel pip install --upgrade pip pip install --upgrade setuptools pip install --upgrade wheel 可以使用镜像:-i pip install cmake -i pip install boost i 三.安装dlib win + R => cmd # pip install (前面下载的dl

  • Nginx报404错误的详细解决方法

    近日在部署项目时,出现了一些问题,如图 正常的登录界面是可以访问的,但是在登录之后访问之后的地址会报404错误,于是去查看是否配置有错误,但是查看之后发现,nginx.conf与config.js两个配置文件的ip和端口都是没有错误的 这个项目部署过好多次,没有出现过这样的错误. 这是原版没动过的解压缩后的nginx.conf的源文件 圈起来的地方是应该按照项目配置对应的ip和监听的端口 listen对应的是端口,server_name对应的是访问的ip 但是这样是不能解决问题,我们需要添加如下

  • python中常见错误及解决方法

    python常见的错误有 1.NameError变量名错误 2.IndentationError代码缩进错误 3.AttributeError对象属性错误 详细讲解 1.NameError变量名错误 报错: >>> print a<br>Traceback (most recent call last):<br>File "<stdin>", line 1, in <module><br>NameError:

  • 解决python中0x80072ee2错误的方法

    解决python中出现x80072ee2错误的方法: 在官网上直接下载"python-3.7.2-amd64.exe"并安装即可: 因为如果安装"python-3.7.2-amd64-webinstall.exe",自动访问外网,导致无法访问. 安装错误信息: Setup failed One or more issues caused the setup to fail.Please fix the issues and then retry setup.For

  • Python结巴中文分词工具使用过程中遇到的问题及解决方法

    本文实例讲述了Python结巴中文分词工具使用过程中遇到的问题及解决方法.分享给大家供大家参考,具体如下: 结巴分词是Python语言中效果最好的分词工具,其功能包括:分词.词性标注.关键词抽取.支持用户词表等.这几天一直在研究这个工具,在安装与使用过程中遇到一些问题,现在把自己的一些方法帖出来分享一下. 官网地址:https://github.com/fxsjy/jieba 1.安装. 按照官网上的说法,有三种安装方式, 第一种是全自动安装:easy_install jieba 或者 pip

  • Vue.js 中 axios 跨域访问错误问题及解决方法

    1.假如访问的接口地址为 http://www.test.com/apis/index.php  (php api 接口) 2.而开发地址为http://127.0.0.1:8080,当axios发起请求时,出现如下错误: Failed to load http://www.test.com/apis/index.php?&act=login: The value of the 'Access-Control-Allow-Origin' headerin the response must no

  • python安装cx_Oracle模块常见问题与解决方法

    本文实例讲述了python安装cx_Oracle模块常见问题与解决方法.分享给大家供大家参考,具体如下: 安装或使用cx_Oracle时,需要用到Oracel的链接库,如libclntsh.so.10.1,否则会有各种各样的错误信息. 安装Oracle Instant Client就可得到这个链接库,避免安装几百兆之巨的Oracle Client. 软件下载地址: cx_Oracle的主页:http://cx-oracle.sourceforge.net/ 必需的Oracle链接库的下载地址:h

  • Python中动态创建类实例的方法

    简介 在Java中我们可以通过反射来根据类名创建类实例,那么在Python我们怎么实现类似功能呢? 其实在Python有一个builtin函数import,我们可以使用这个函数来在运行时动态加载一些模块.如下: def createInstance(module_name, class_name, *args, **kwargs): module_meta = __import__(module_name, globals(), locals(), [class_name]) class_met

随机推荐