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

Python3.11执行pip安装时email模块元数据生成失败求助

解决pip安装email模块的语法错误问题

问题场景

执行pip install -r win_requirements.txt时,因尝试安装email模块触发错误,直接执行pip3 install email也会出现如下报错:

pip3 install email
Defaulting to user installation because normal site-packages is not writeable
Collecting email
  Using cached email-4.0.2.tar.gz (1.2 MB)
  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error
  
  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [18 lines of output]
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 14, in <module>
        File "/usr/lib/python3/dist-packages/setuptools/__init__.py", line 15, in <module>
          import setuptools.version
        File "/usr/lib/python3/dist-packages/setuptools/version.py", line 1, in <module>
          from ._importlib import metadata
        File "/usr/lib/python3/dist-packages/setuptools/_importlib.py", line 45, in <module>
          import importlib.metadata as metadata  # noqa: F401
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/usr/lib/python3.11/importlib/metadata/__init__.py", line 17, in <module>
          from . import _adapters, _meta
        File "/usr/lib/python3.11/importlib/metadata/_adapters.py", line 3, in <module>
          import email.message
        File "/tmp/pip-install-lzxy69gd/email_f38b626eeefa44a098244f34710a1052/email/message.py", line 255
          if str(charset) <> charset.get_output_charset():
                          ^^
      SyntaxError: invalid syntax
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.

问题原因

  1. email是Python标准库内置模块,无需通过pip安装,直接在代码里import email即可使用。
  2. PyPI上的email包(版本4.0.2)是极其老旧的Python 2.x兼容版本,代码中使用了Python 3已废弃的<>不等于运算符(Python 3中统一用!=),因此在Python 3.11环境下触发语法错误。

解决方案

  • 打开win_requirements.txt,删除其中的email条目,重新执行pip install -r win_requirements.txt。
  • 如果代码需要邮箱验证、解析等扩展功能,不要使用这个老旧包,改用现代第三方库,比如email-validator(执行pip install email-validator安装)。

内容的提问来源于stack exchange,提问作者John Smith II

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 08:23:27