【已解决】解决 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 天前
🍙 给每个请求过安检:FastAPI 是怎么把校验写进类型注解的
python
qq_426003964 天前
启动playwright录制codegen生成自动化测试脚本
python·自动化
虎头金猫4 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
长沙三为智能科技4 天前
家政小程序开发从0到上线:五阶段交付流程与验收清单
python
伞伞悦读4 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
只睡四小时4 天前
Canvas 弹道联机实战:700 行 + 固定时间步长
python·websocket·html5·游戏开发·canvas
奇思妙想聪明勤奋的小羊4 天前
DeepAgents第5章:子Agent 与上下文隔离—让 Agent学会委派
人工智能·python·学习·语言模型
lpfasd1234 天前
2026年第38周GitHub趋势周报
python·科技·github
IZero074 天前
Jev 与 Laya
python·语言模型