python开发笔记--ImportError: cannot import name 'sysconfig' from 'distutils' (/usr/lib/python3.8/distutils/__init__.
异常情况:
ubuntu20.4安装python3.10和pip后,
执行pip list 提示如下:
ImportError: cannot import name 'sysconfig' from 'distutils' (/usr/lib/python3.8/distutils/__init__.
先放解决方案:
安装:apt install python3.10-distutils 如果还是不行,执行修复命令: curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py python3.10 get-pip.py
问题复现&回顾:
ubuntu20.4安装python3.10过程:
(1)检查是否已安装 Python 以及版本
python3 -V 或者: python3 --version 查看 Python 2的版本: python -V # 注:如果没有安装任何Python,会提示“-bash: python: command not found”。
(2)开始安装
# 先更新系统: apt update # 安装必要的支持包: apt install software-properties-common # 添加 Deadsnakes PPA“个人软件包存档”源: add-apt-repository ppa:deadsnakes/ppa # 注:如果不想用该源了,rm直接删除/etc/apt/sources.list.d/下对应的文件即可 # https://blog.csdn.net/weixin_39278265/article/details/127845338 # 更换国内阿里云apt源: 省略 # 再次更新: apt update
(3)安装指定版本Python3
# 这里选择安装python3.10 apt install python3.10 # 其他版本例如: apt install python3.9apt install python3-pipapt install python3-pip # 安装完成之后,查看版本: python3.10 -V # 这里要主要下,如果安装完成后,终端输入python,其实默认进入的是python3.8环境,因为安装python3.10的时候,默认安装了python3.8, # 如果要严格进入python3.10环境,则需要重新修改下软连接。 # 删除原有软连接: rm /usr/bin/python # 找到python3.10的安装路径(一般在/usr/bin/python3.10) # 创建新的软链接 ln -s /usr/bin/python3.10 /usr/bin/python # OK,这个时候接下来终端访问python3默认进入的就是python3.10环境了。
(4)安装pip
apt install python3-pip
安装完成后,这个时候问题出现:
执行pip list提示如下:
ImportError: cannot import name 'sysconfig' from 'distutils' (/usr/lib/python3.8/distutils/__init__.
因为我们修改了默认环境和软连接,pip list相应指令找的还是python3.8相关的,而不是我们的python3.10;
怎么办:
安装:apt install python3.10-distutils
如果还是不行:
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3.10 get-pip.py
root@39a2d7eed26f:/mnt# python3.10 get-pip.py Collecting pip Downloading pip-23.0-py3-none-any.whl (2.1 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.1/2.1 MB 14.2 kB/s eta 0:00:00 Collecting setuptools Downloading setuptools-67.2.0-py3-none-any.whl (1.1 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.1/1.1 MB 12.8 kB/s eta 0:00:00 Installing collected packages: setuptools, pip Attempting uninstall: pip Found existing installation: pip 8.1.1 Uninstalling pip-8.1.1: Successfully uninstalled pip-8.1.1 Successfully installed pip-23.0 setuptools-67.2.0 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
参考:https://github.com/pypa/pip/issues/5356
https://stackoverflow.com/questions/63823964/importerror-cannot-import-name-sysconfig-from-distutils-usr-lib-python3-8