You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决prettytable包引发的ModuleNotFoundError问题?

问题解决:ModuleNotFoundError: No module named 'email.message'; 'email' is not a package

问题重现

运行代码:

from prettytable import PrettyTable

table = PrettyTable()
print(table)

触发报错:

Traceback (most recent call last):
  File "e:\PROJECTS\newwww.py", line 1, in <module>
    from prettytable import PrettyTable
  File "E:\PROJECTS\myvenv\Lib\site-packages\prettytable\__init__.py", line 47, in <module>
    import importlib.metadata
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.11_3.11.1264.0_x64__qbz5n2kfra8p0\Lib\importlib\metadata\__init__.py", line 17, in <module>
    from . import _adapters, _meta
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.11_3.11.1264.0_x64__qbz5n2kfra8p0\Lib\importlib\metadata\_adapters.py", line 3, in <module>
    import email.message
ModuleNotFoundError: No module named 'email.message'; 'email' is not a package

多次重装prettytable无效。

原因分析

这个错误和prettytable本身无关,是项目目录中存在与Python标准库email包同名的文件/目录,导致Python优先加载了自定义的email文件,而非标准库的内置包,进而找不到email.message模块。

解决方案

  1. 排查同名文件/目录
    检查项目根目录(e:\PROJECTS\)下是否存在email.py文件或email文件夹,若有,立即重命名(例如改为my_email_utils.py或custom_email_dir),避免与标准库冲突。

  2. 清理缓存文件
    删除项目目录下的__pycache__文件夹,清除Python编译缓存后重新运行代码。

  3. 重建虚拟环境
    若上述方法无效,尝试重置虚拟环境:

    • 删除现有虚拟环境:rmdir /s E:\PROJECTS\myvenv(Windows命令行)
    • 重新创建虚拟环境:python -m venv myvenv
    • 激活虚拟环境:myvenv\Scripts\activate
    • 重新安装prettytable:pip install prettytable
    • 再次运行测试代码

内容的提问来源于stack exchange,提问作者Alexander

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 07:12:26