【已解决】解决 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 之前先查一查这个模块名对应的发布包名的名称是什么,避免安装出错。

相关推荐
武天旭7 小时前
AI安全--AI大模型的毒性偏见与安全对齐实践
人工智能·python·深度学习
视觉小萌新8 小时前
AI Class 3 · Chapter 2-3:函数、异常、文件读写+JSON / JSONL 读写(小白版)
人工智能·python·json
小小张说故事9 小时前
Python 的 obj.x 到底按什么顺序找?拆开数据描述符、实例字典和 __getattr__ 那条优先级链
python
用户114818678948410 小时前
水印的实现方式逻辑
前端·python
贾公子10 小时前
从单条内容到账号维度——AIGC 风险评分的工程实现
后端·python
木头左11 小时前
【Python】不点浏览器发博客:逆向 CSDN 创作中心接口做 md-publish 技能
python·自动化·api
Tt有了t12 小时前
设计模式速查
java·python·设计模式
deepseek2312 小时前
Python日志拖慢请求?QueueHandler排队、丢失与退出实测
python·性能优化·logging·后端开发·queuehandler
用户912940468484212 小时前
Codex 从零到能交付(05):第一次改代码:生成一个文件清单脚本
python
Dmz丶12 小时前
前端转 AI 100 天 Day 38:Token 管理与成本优化——别让 API 账单爆炸
python