首页 > 编程语言 >python开发笔记--ImportError: cannot import name 'sysconfig' from 'distutils' (/usr/l

python开发笔记--ImportError: cannot import name 'sysconfig' from 'distutils' (/usr/l

时间:2023-02-09 11:12:20浏览次数:40  
标签:__ python3.10 distutils apt cannot usr pip 安装

异常情况:
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

标签:__,python3.10,distutils,apt,cannot,usr,pip,安装
From: https://www.cnblogs.com/hellojesson/p/17104565.html

相关文章

  • 运维常用技巧!!!!!!!!!
    运维必备的17个技巧网络工程师笔记 运维网工 2023-02-0909:00 发表于重庆收录于合集#网络运维10个#运维管理13个#运维工程师44个#网络工程师7个1、查找当......
  • LinkedList
    说明:底层实现了双向链表和双端队列特点可以添加重复元素,包括null线程不安全,没有实现同步LinkedList的底层操作机制:LinkedList底层维护了一个双向链表LinkedList中......
  • div支持拖动调整尺寸-html
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content=......
  • spring事务遇到建表语句时无法回退的问题
    当spring事务遇到对于不支持事务的语句的执行时,则提交事务。下面程序出错也不会进行回退。解决方案将不支持事务的语句执行放到一个方法中,方法上加上注解@Transactional......
  • SpringBoot/SpringCloudAlibaba(ruoyi)中cron表达式(配置每天指定整点执行)读取配置文
    场景若依微服务版手把手教你本地搭建环境并运行前后端项目:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/109363303在上面的基础上某业务需要配置cron表......
  • linux批量改密码ansible实战(转)
    使用Ansible的user模块批量修改远程客户机的用户密码[root@localhostansible]#catroot_passwd.yaml----hosts:webgather_facts:falsetasks:-na......
  • MySQL查询一年、一周、三个月的数据
    阅读目录DATE_SUB()函数从日期减去指定的时间间隔DATE_SUB()函数从日期减去指定的时间间隔语法:DATE_SUB(date,INTERVALexprtype)date参数是合法的日期表达......
  • PHP注册模式
    阅读目录PHP注册模式PHP注册模式注册模式解决全局共享和交换对象,将已创建好的对象,挂在全局可以使用的数组上,在需要使用的时候,直接从该数组上获取该类的实现即可......
  • MySQL中 any,some,all 的用法
    阅读目录一、any,some,allall逻辑运算符any和some运算符一、any,some,allany,some,all是MySQL当中的逻辑运算符,作用是将子查询返回的单列值的集合与查询......
  • MySQL查询某天的数据
    阅读目录1、DATE_FORMAT()函数用于以不同的格式显示日期/时间数据2、DATEDIFF()函数返回两个日期之间的天数扩展知识1、DATE_FORMAT()函数用于以不同的格式......