【已解决】解决 ModuleNotFoundError: No module named ‘exceptions‘

【已解决】解决 ModuleNotFoundError: No module named 'exceptions'

文章目录

  • [【已解决】解决 ModuleNotFoundError: No module named 'exceptions'](#【已解决】解决 ModuleNotFoundError: No module named 'exceptions')
    • [1 问题描述](#1 问题描述)
    • [2 解决方法](#2 解决方法)
      • [2.1 卸载错误的模块](#2.1 卸载错误的模块)
      • [2.2 安装正确的模块](#2.2 安装正确的模块)
    • [3 为什么会出现这个问题?](#3 为什么会出现这个问题?)
      • [1️⃣ 包名和模块名可以不同](#1️⃣ 包名和模块名可以不同)
      • [2️⃣ 一个 pip 包可以包含多个模块](#2️⃣ 一个 pip 包可以包含多个模块)
      • [3️⃣ 有些库历史原因改名](#3️⃣ 有些库历史原因改名)
      • [4️⃣ pip 包里面嵌套子模块](#4️⃣ pip 包里面嵌套子模块)
    • [4 所以如何知道应该 install 什么?](#4 所以如何知道应该 install 什么?)
    • [5 总结](#5 总结)

1 问题描述

当你在使用 Python 时遇到 ModuleNotFoundError: No module named 'exceptions' 错误,这通常是因为你安装了错误的模块。

出现这个报错最常见的情形是:

python 复制代码
from docx import Document

运行时出现错误:

bash 复制代码
ModuleNotFoundError: No module named 'exceptions'

2 解决方法

2.1 卸载错误的模块

首先,卸载错误的 docx 模块。

bash 复制代码
pip uninstall docx

2.2 安装正确的模块

然后,安装正确的 python-docx 模块。

bash 复制代码
pip install python-docx

按照上述步骤重新正确安装后,应该能够解决 ModuleNotFoundError: No module named 'exceptions' 错误,并成功运行代码。

3 为什么会出现这个问题?

出现这个报错肯定是看到代码中有

python 复制代码
from docx import Document

所以就直接这样安装了:

bash 复制代码
pip install docx

但是请注意!

pip install 安装的是 distribution package(发布包名) ,而 import 用的是 module / package name(模块名) 。二者不一定相同

关于模块名与 Python import 用法的相关内容,可以看我之前的这一篇文章中的相关介绍:【一文搞懂】万字长文带你彻底理解 Python 的 import 导入机制 与 if name == "main": main() 的原理与作用

Python 里 import 的名字和 pip install 的包名不一定一样,原因主要有几个:

1️⃣ 包名和模块名可以不同

pip install 安装的是 distribution package(发布包名)

import 用的是 module / package name(模块名)

开发者可以随意设置这两个名字。

例如:

bash 复制代码
pip install pillow

但是代码里要写:

python 复制代码
import PIL

因为 Pillow 发布包里提供的模块叫 PIL

2️⃣ 一个 pip 包可以包含多个模块

有些库安装一个包,会提供很多模块。

例如:

bash 复制代码
pip install scikit-learn

代码:

python 复制代码
import sklearn

这里:

pip install import
scikit-learn sklearn

3️⃣ 有些库历史原因改名

很多库有历史包名。

例如:

pip install import
opencv-python cv2
beautifulsoup4 bs4
python-dateutil dateutil

代码:

python 复制代码
pip install beautifulsoup4
python 复制代码
from bs4 import BeautifulSoup

4️⃣ pip 包里面嵌套子模块

很多库是 父包 + 子模块

例如:

bash 复制代码
pip install matplotlib

代码:

python 复制代码
import matplotlib.pyplot as plt

这里:

复制代码
matplotlib
 └── pyplot

4 所以如何知道应该 install 什么?

如果看到代码:

python 复制代码
import cv2

你不知道安装什么,可以:

方法1:google

复制代码
pip install cv2

通常会告诉你:

复制代码
pip install opencv-python

方法2:用 pip search(旧方法)

现在常用:

bash 复制代码
pip install pip_search
pip_search cv2

方法3:看官方文档

🔥一个很实用的网站

推荐这个:

复制代码
https://pypi.org

搜索模块名。

5 总结

大部分情况

复制代码
pip install 包名
import 包名

但下面这些经常不同:

pip install import
pillow PIL
opencv-python cv2
beautifulsoup4 bs4
scikit-learn sklearn
python-dateutil dateutil

💡所以建议 pip install 之前先查一查这个模块名对应的发布包名的名称是什么,避免安装出错。

相关推荐
傲笑风4 小时前
【openvino】tinybert基于openvino服务化部署(四)
人工智能·python·自然语言处理·nlp·bert·openvino
维基框架4 小时前
WIKI 知识库 v1.1.1 正式发布
人工智能·python
谢白羽8 小时前
SGLang的AWQ量化笔记
笔记·python·sglang
迷迭香yy8 小时前
基金档案数据工程实战从收入分析到持仓穿透的Python解析 IG50免费开源股票数据API接口
开发语言·python
清水白石0088 小时前
Python 类型设计深度解析:TypedDict 能否替代 dataclass?从 JSON 数据边界到 API 设计的最佳实践
java·python·json
️学习的小王9 小时前
Git项目提交忽略文件怎么做?以Python项目为例,详解.gitignore
git·python·elasticsearch
前端 贾公子9 小时前
第09章:上下文与记忆 (6)
开发语言·前端·python
evans在进步9 小时前
Java 常用设计模式入门:建造者、工厂、单例、外观与代理
java·python·设计模式
jayson.h10 小时前
PDF 合并+添加页码 相关库、类、函数
开发语言·前端·python
典典分享指南10 小时前
用飞书多维表格搭建内容管理看板
java·python·r语言·composer·symfony