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

posted @ 2023-02-09 11:04  hello-Jesson  阅读(1011)  评论(0编辑  收藏  举报