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.
问题原因
email是Python标准库内置模块,无需通过pip安装,直接在代码里import email即可使用。- 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
相关产品推荐
相关产品推荐

