Python 3.6运行get-pip.py报错:ModuleNotFoundError: No module named 'dataclasses'
解决Python 3.6运行get-pip.py时缺少dataclasses模块的问题
看你贴的报错堆栈,核心原因很明确:dataclasses是Python 3.7才加入标准库的,而你用的是Python 3.6,最新版的pip已经不再兼容Python 3.6,所以运行默认的get-pip.py会因为找不到这个模块而失败。
给你两个实用的解决办法,按需选择:
方法一:安装兼容Python 3.6的旧版pip(推荐)
最后支持Python 3.6的pip版本是20.3.4,你可以直接让get-pip.py安装这个版本,它不会依赖dataclasses模块。运行以下命令:python get-pip.py pip==20.3.4执行完这个命令,pip就能正常安装并使用了,后续在Python 3.6环境下也不会有兼容性问题。
方法二:先手动安装dataclasses模块(仅作备选,不推荐)
如果你执意要尝试安装较新版的pip,可以先通过Python自带工具补上dataclasses:- 先用Python内置的
ensurepip初始化基础版pip:python -m ensurepip --default-pip - 安装第三方的dataclasses包(Python 3.6可通过此方式使用该模块):
python -m pip install dataclasses - 现在再运行get-pip.py就不会报错了:
python get-pip.py
不过要提醒你,即使这样安装了新版pip,后续使用时可能还是会遇到其他兼容性问题——毕竟Python 3.6已经停止维护,官方不再提供支持,所以优先推荐方法一。
- 先用Python内置的
附你提供的报错信息:
$ python get-pip.py Traceback (most recent call last): File "get-pip.py", line 32710, in <module> main() File "get-pip.py", line 139, in main bootstrap(tmpdir=tmpdir) File "get-pip.py", line 115, in bootstrap monkeypatch_for_cert(tmpdir) File "get-pip.py", line 96, in monkeypatch_for_cert from pip._internal.commands.install import InstallCommand File "/tmp/tmpvq5rjaoc/pip.zip/pip/_internal/commands/__init__.py", line 9, in <module> File "/tmp/tmpvq5rjaoc/pip.zip/pip/_internal/cli/base_command.py", line 13, in <module> File "/tmp/tmpvq5rjaoc/pip.zip/pip/_internal/cli/cmdoptions.py", line 23, in <module> File "/tmp/tmpvq5rjaoc/pip.zip/pip/_internal/cli/parser.py", line 12, in <module> File "/tmp/tmpvq5rjaoc/pip.zip/pip/_internal/configuration.py", line 20, in <module> File "/tmp/tmpvq5rjaoc/pip.zip/pip/_internal/exceptions.py", line 14, in <module> File "/tmp/tmpvq5rjaoc/pip.zip/pip/_vendor/rich/console.py", line 7, in <module> ModuleNotFoundError: No module named 'dataclasses'
内容的提问来源于stack exchange,提问作者pradyunsg
相关产品推荐
相关产品推荐

