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

相关推荐
川冰ICE几秒前
Python爬虫实战⑲|Pandas数据合并与重塑,多数据源整合
爬虫·python·pandas
acanab3 分钟前
isaaclab资产打包的一种方式
vscode·python·机器人·isaac lab
Be reborn5 分钟前
从一行 CSV 到一次浏览器操作:关键字驱动执行引擎设计
python·自动化·pytest
创意岛7 分钟前
AI时代,你的品牌在城市发展中“被消失”了吗?
人工智能·python
weixin_4440129311 分钟前
CSS如何实现单选按钮自定义样式_利用伪元素隐藏默认UI
jvm·数据库·python
X566112 分钟前
CSS如何利用Grid重写老旧的表格布局
jvm·数据库·python
ㄟ留恋さ寂寞16 分钟前
mysql如何配置MySQL的连接保持_调整tcp_keepalive设置
jvm·数据库·python
2301_7838486516 分钟前
Less如何构建CSS样式库_通过继承机制优化组件化开发
jvm·数据库·python
曦月逸霜8 小时前
啥是RAG 它能干什么?
人工智能·python·机器学习
2301_769340679 小时前
如何在 Vuetify 中可靠捕获 Chip 关闭事件(包括键盘触发).txt
jvm·数据库·python