Ubuntu22.04下Python3.9虚拟环境安装依赖时distutils.cmd缺失求助
解决Python3.9虚拟环境中
distutils.cmd缺失问题 问题现象
使用PyCharm创建Python3.9虚拟环境后,执行依赖安装时出现以下错误:
Error: Traceback (most recent call last): File "/snap/pycharm-professional/401/plugins/python/helpers/packaging_tool.py", line 85, in run_pip runpy.run_module(module_name, run_name='__main__', alter_sys=True) File "/usr/lib/python3.9/runpy.py", line 210, in run_module return _run_module_code(code, init_globals, run_name, mod_spec) File "/usr/lib/python3.9/runpy.py", line 97, in _run_module_code _run_code(code, mod_globals, init_globals, File "/usr/lib/python3.9/runpy.py", line 87, in _run_code exec(code, run_globals) File "/home/my_user/Documents/my_project/venv/lib/python3.9/site-packages/pip/__main__.py", line 22, in <module> from pip._internal.cli.main import main as _main File "/home/my_user/Documents/my_project/venv/lib/python3.9/site-packages/pip/_internal/cli/main.py", line 10, in <module> from pip._internal.cli.autocompletion import autocomplete File "/home/my_user/Documents/my_project/venv/lib/python3.9/site-packages/pip/_internal/cli/autocompletion.py", line 10, in <module> from pip._internal.cli.main_parser import create_main_parser File "/home/my_user/Documents/my_project/venv/lib/python3.9/site-packages/pip/_internal/cli/main_parser.py", line 9, in <module> from pip._internal.build_env import get_runnable_pip File "/home/my_user/Documents/my_project/venv/lib/python3.9/site-packages/pip/_internal/build_env.py", line 19, in <module> from pip._internal.cli.spinners import open_spinner File "/home/my_user/Documents/my_project/venv/lib/python3.9/site-packages/pip/_internal/cli/spinners.py", line 9, in <module> from pip._internal.utils.logging import get_indentation File "/home/my_user/Documents/my_project/venv/lib/python3.9/site-packages/pip/_internal/utils/logging.py", line 29, in <module> from pip._internal.utils.misc import ensure_dir File "/home/my_user/Documents/my_project/venv/lib/python3.9/site-packages/pip/_internal/utils/misc.py", line 41, in <module> from pip._internal.locations import get_major_minor_version File "/home/my_user/Documents/my_project/venv/lib/python3.9/site-packages/pip/_internal/locations/__init__.py", line 66, in <module> from . import _distutils File "/home/my_user/Documents/my_project/venv/lib/python3.9/site-packages/pip/_internal/locations/_distutils.py", line 20, in <module> from distutils.cmd import Command as DistutilsCommand ModuleNotFoundError: No module named 'distutils.cmd'
尝试执行sudo apt install python3.9-distutils安装时,出现包找不到的错误:
E: Unable to locate package python3.9-distutils E: Couldn't find any package by glob 'python3.9-distutils'
解决方案
Ubuntu官方软件源通常不包含旧版本Python的distutils扩展包,需要通过第三方PPA源获取:
添加deadsnakes PPA源(该源提供全版本的Python官方包):
sudo add-apt-repository ppa:deadsnakes/ppa更新本地软件源缓存:
sudo apt update重新安装python3.9-distutils:
sudo apt install python3.9-distutils激活虚拟环境后,重新执行依赖安装:
source /home/my_user/Documents/my_project/venv/bin/activate pip install -r requirements.txt
如果上述方法无效,可尝试手动修复虚拟环境的pip:
- 先卸载虚拟环境中的pip:
pip uninstall -y pip - 从官方脚本重新安装pip:
curl https://bootstrap.pypa.io/get-pip.py | python3.9
内容的提问来源于stack exchange,提问作者Palinuro
相关产品推荐
相关产品推荐

