Python 报错ImportError: No module named ***的问题解决

作者:

文章目录
  • 情形:运用import函数调用Python包时出现。 原因:报这种错就是找不到对应的包了。 原理:运用import函数调用Python包时,会从搜索路径下面寻找对应的包所在的库,如果没有找到对应的包名,就会报这个错。
  • 根据原理,报这种错会有两种情况。一种就是根本没有安装相应的包,另一种就是包没有安装在对应的搜索路径下面,出现这种情况一般是Python安装过多版本或者进行过升级(也就是解释器用错了,假如这个包是用Python3写的,但你用Python2去运行了,就会报错)。
  • 先确认是那种情况,直接搜索看看能不能找到相应的包 find / -name 包名 #/代表全局变量,如果权限不够全局变量,就缩小范围到个人账户下的范围 #或者用whereis函数 whereis 包名
  • 目录
    • 一、报错原因
    • 二、解析情况
    • 三、解决方法
      • 3.1、未安装相应的包
      • 3.2、不在搜索路径下
      • 3.3、进入对应的版本

    • 情形:运用import函数调用Python包时出现。
    • 原因:报这种错就是找不到对应的包了。
    • 原理:运用import函数调用Python包时,会从搜索路径下面寻找对应的包所在的库,如果没有找到对应的包名,就会报这个错。

    根据原理,报这种错会有两种情况。
    一种就是根本没有安装相应的包,另一种就是包没有安装在对应的搜索路径下面,出现这种情况一般是Python安装过多版本或者进行过升级(也就是解释器用错了,假如这个包是用Python3写的,但你用Python2去运行了,就会报错)。

    • 先确认是那种情况,直接搜索看看能不能找到相应的包
    find / -name 包名
    #/代表全局变量,如果权限不够全局变量,就缩小范围到个人账户下的范围
    #或者用whereis函数
    whereis 包名
    

    • 直接用pip安装相应的包
    pip install 包名
    
    • 如果没有安装pip,用下面的代码安装
    sudo apt-get install python-pip
    

    • 第一步:在判断原因时查找过包,记录下包的位置
      以Python3.9为例,位置一般在
    /..../python3.9/site-packages/
    

    如果使用的是anaconda,路径为:

    /.../anaconda3/lib/python3.9/site-packages/
    
    • 第二步:查看Python的搜索路径有哪些
      • 在Linux中输入python进入python操作页面
      • 输入下面代码查找搜索路径
    import sys
    sys.path
    

    在这里插入图片描述

    • 第三步:将包的路径添加到搜索路径中
    • 设置pythonpath环境变量
      编辑 ~/.profile 文件:(需要管理员权限)
    export PYTHONPATH=$PYTHONPATH:待加入的搜索路径
    

    直接在命令行中输入:(临时,下次开机时失效)

    export PYTHONPATH=$PYTHONPATH:待加入的搜索路径
    

    注意不要有空格,否则会报错

    • 添加.pth 文件(需要管理员权限)
      在搜索目录下新建一个.pth 文件,文件名任意,文件中每一行是一个路径,将第一步的路径输进入。(python运行时将会自动把每个.pth文件中的路径加入到搜索路径中)

    • 通过sys.path设置路径(临时)

    import  sys
    sys.path.append("待加入的搜索路径")
    
    • 在pycharm中设置搜索路径(只在pycharm中有效)
      有两种方法:
      1). 右击要加入的路径文件夹,选择“Mark Directory as ”,再选择“source root”
      2). 在edit configurations 中点击“environment variables”,输入:
      name: PYTHONPYTH
      Values: “待加入的路径”

    • 安装多个Python版本后,可以在命令上标注版本号,来进入不同大版本的Python。
    • 这样也可以解决搜索不到对应包的问题。包装在了版本2中就进Python2版本,包装在了版本3中就进python3版本(如果需要调用的多个包不在同一版本内,这个办法就失效了)
    • 运行:python2(/3)
    • 既然知道是包和解释器不匹配造成的了,同样的可以通过更改Python文件的文件头部说明也可以指定解释器
      • 具体操作:在Python文件的首行加上,#!/usr/bin/env python3
    • 例如

    在这里插入图片描述

    在这里插入图片描述

    到此这篇关于Python 报错ImportError: No module named ***的文章就介绍到这了,更多相关Python ImportError报错 内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客! 

    您可能感兴趣的文章:

    • python解决报错ImportError: Bad git executable.问题
    • 解决python报错ImportError:urllib3 v2.0 only supports OpenSSL 1.1.1+
    • Python报错ImportError: IProgress not found. Please update jupyter and ipywidgets解决
    • python项目导入open3d后报错ImportError:DLL load failed:找不到指定的模块问题
    • Python报错ImportError: No module named ‘missing_module‘的解决方法

    站内搜索