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

安装Python 3.12后使用pip安装库出现异常,求原因

问题描述

在Ubuntu 22.04系统中通过PPA仓库ppa:deadsnakes/ppa安装了Python 3.12,基础功能正常,但执行命令python3.12 -m pip install somelibrary安装第三方库时,出现如下错误:

ERROR: Exception:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/pip/_internal/cli/base_command.py", line 165, in exc_logging_wrapper
    status = run_func(*args)
             ^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/pip/_internal/cli/req_command.py", line 205, in wrapper
    return func(self, options, args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/pip/_internal/commands/install.py", line 285, in run
    session = self.get_default_session(options)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/pip/_internal/cli/req_command.py", line 75, in get_default_session
    self._session = self.enter_context(self._build_session(options))
                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/pip/_internal/cli/req_command.py", line 89, in _build_session
    session = PipSession(
              ^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/pip/_internal/network/session.py", line 282, in __init__
    self.headers["User-Agent"] = user_agent()
                                 ^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/pip/_internal/network/session.py", line 157, in user_agent
    setuptools_dist = get_default_environment().get_distribution("setuptools")
                      ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/pip/_internal/metadata/__init__.py", line 24, in get_default_environment
    from .pkg_resources import Environment
  File "/usr/lib/python3/dist-packages/pip/_internal/metadata/pkg_resources.py", line 9, in <module>
    from pip._vendor import pkg_resources
  File "/usr/lib/python3/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 2164, in <module>
    register_finder(pkgutil.ImpImporter, find_on_path)
                    ^^^^^^^^^^^^^^^^^^^
AttributeError: module 'pkgutil' has no attribute 'ImpImporter'. Did you mean: 'zipimporter'?

补充说明:使用venv虚拟环境时无此问题,推测pip调用了/usr/lib/python3而非/usr/lib/python3.12的内容。

问题原因
  • API兼容性冲突:Python 3.12已移除pkgutil.ImpImporter这个旧API,但你当前调用的是系统全局的旧版本pip(位于/usr/lib/python3/dist-packages),它依赖的pkg_resources库仍在使用该已被移除的属性,因此触发AttributeError。
  • pip调用路径错误:通过ppa:deadsnakes/ppa安装的Python 3.12默认不会在全局环境中配置适配自身版本的pip,执行python3.12 -m pip时,系统会从全局模块路径中优先找到适配系统原生旧版Python的pip,而非Python 3.12专属的pip。
  • 虚拟环境正常的原因:创建venv虚拟环境时,会自动为当前Python版本安装适配的pip和setuptools,这些工具是针对Python 3.12的API编写的,不会使用已被移除的ImpImporter,因此可以正常工作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 12:43:26