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

Ubuntu 22.04下Python3.9安装包报distutils.cmd缺失如何解决

问题原因

Ubuntu 22.04 软件源将Python各版本的distutils组件拆分为独立安装包,默认安装的Python3.9不会自动携带该模块。distutils属于Python标准库的系统级组件,无法通过pip单独安装修复,不管是全局环境还是虚拟环境,只要底层基于系统源安装的Python3.9运行,缺少对应系统包就会抛出ModuleNotFoundError: No module named 'distutils.cmd'错误。

修复流程

1. 安装Python3.9匹配的distutils组件

执行以下命令安装对应依赖,注意不要安装通用的python3-distutils包,该包仅适配系统默认的Python3.10,和3.9版本不兼容:

sudo apt update
sudo apt install python3.9-distutils

如果后续需要安装带C扩展的第三方库(如numpy、pandas等),建议同步安装开发头文件包,避免编译报错:

sudo apt install python3.9-dev

2. 修复Python3.9的pip环境

安装完distutils后,使用Python自带的ensurepip模块为3.9版本初始化并升级pip,确保pip和Python版本绑定正确:

python3.9 -m ensurepip --upgrade

执行完成后验证pip版本匹配性:

python3.9 -m pip --version

正常输出会明确显示pip对应Python 3.9版本路径,不会关联到系统默认的Python3.10。

3. 正常安装依赖

此时执行安装命令即可正常为Python3.9安装第三方包,不会再出现distutils相关报错:

python3.9 -m pip install mypackage
虚拟环境注意事项

PyCharm或venv创建的Python3.9虚拟环境会继承系统层面Python3.9的标准库组件,因此必须先完成上述系统级修复步骤再创建虚拟环境。已经创建的报错虚拟环境直接删除重建即可,不需要在虚拟环境内额外安装distutils相关包。

避坑提示
  • 不要尝试执行pip install distutils修复问题,PyPI源上的distutils是过时的占位包,安装后会和系统Python组件产生冲突。
  • 不要手动修改系统默认的python3软链接指向Python3.9,会导致依赖Python3.10的系统组件(如apt、桌面环境核心程序)运行崩溃。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 05:09:34