首页 > 编程语言 >python版本升级

python版本升级

时间:2023-09-05 12:45:51浏览次数:52  
标签:3.7 python Python 版本升级 usr root localhost

https://zhuanlan.zhihu.com/p/439552243

CentOS 7 中默认安装了 Python,版本比较低(2.7.5),为了使用python3.7.8,需要对旧版本进行升级。由于很多基本的命令、软件包都依赖旧版本,比如:yum。所以,在更新 Python 时,建议不要删除旧版本(新旧版本可以共存)。
一、查看当前python版本

[root@localhost ~]# python -V  
Python 2.7.5


二、下载新的python包并安装
进入python官网(https://www.python.org),选择需要的版本。此处我选择版本为Python3.7.8
以下是安装依赖环境和ssl,下载python3.7.8版本并编译安装

[root@localhost ~]# yum -y install gcc zlib*
[root@localhost ~]# yum install openssl-devel -y
[root@localhost ~]# wget https://www.python.org/ftp/python/3.7.8/Python-3.7.8.tar.xz
[root@localhost ~]# tar xvf Python-3.7.8.tar.xz
[root@localhost ~]# cd Python-3.7.8
[root@localhost ~]# ./configure --with-ssl
[root@localhost ~]# make
[root@localhost ~]# make install


注: 本人查阅资料发现,在./configure过程中,如果没有加上–with-ssl参数时,默认安装的软件涉及到ssl的功能不可用,pip3安装第三方库时需要ssl模块,如果没有安装,在进行pip3 install 第三方库 会提示如下错误

pip is configured with locations that require TLS/SSL, however the ssl module in Python is not...

三、验证

[root@localhost Python-3.7.8]# python --version
python 2.7.5
[root@localhost Python-3.7.8]# python3 --version
python 3.7.8


四、设置3.7.8为默认版本
  查看 Python 的路径,在 /usr/bin 下面。可以看到 python 链接的是 python 2.7,所以,执行 python 就相当于执行 python 2.7。

[root@localhost Python-3.7.8]# ls -al /usr/bin | grep python
lrwxrwxrwx 1 root root       7 Dec  5 01:36 python -> python2
lrwxrwxrwx 1 root root       9 Dec  5 01:36 python2 -> python2.7
-rwxr-xr-x 1 root root    7216 Oct 30 23:46 python2.7


将原来 python 的软链接重命名:

[root@localhost Python-3.7.8]# mv /usr/bin/python /usr/bin/python.bak


将 python 链接至 python3:

[root@localhost Python-3.7.8]# ln -s /usr/local/bin/python3 /usr/bin/python


五、配置yum
升级 Python 之后,由于将默认的 python 指向了 python3,yum 不能正常使用,需要编辑 yum 的配置文件,如下:

[root@localhost Python-3.7.8]# yum list
 File "/usr/bin/yum", line 30
    except KeyboardInterrupt, e:
                            ^
SyntaxError: invalid syntax


修改/usr/bin/yum和/usr/libexec/urlgrabber-ext-down两个文件,

将文件中#!/usr/bin/python 改为 #!/usr/bin/python2.7,保存退出即可。


六、升级pip

[root@localhost Python-3.7.8]# pip3 install --upgrade pip    #更新pip3

标签:3.7,python,Python,版本升级,usr,root,localhost
From: https://www.cnblogs.com/shabake/p/17679309.html

相关文章

  • python 学习过程1
    第一天可以用加号连接字符串:利用反斜杠闭合单引号防止和后面的单引号闭合导语句错误。变量赋值之后,重复利用:先用greet(招呼)作为变量,然后你好吃了么作为赋值这里保留了中文打招呼和英文打招呼目的就是为了防止赋值丢失变量取名规则:文字、数字、下划线组成。(zhang_3)不能有下划线之外......
  • python的dict和json数据的区别
    python的dict和json数据有什么区别?-知乎(zhihu.com)python字典与json的区别_python字典与json的区别_阿君聊风控的博客-CSDN博客expectedpropertynameor'}'injsonatposition1遇到如上报错几次,因为没弄清dict和json的区别1、dict是数据结构,json是数据格式,一般用于......
  • VSCode - 配置Python的默认解释器
     1、查看VsCode中默认使用的python解释器 2、Ctrl+Shift+p打开命令行面板 3、输入Python:SelectInterpreter命令,配置默认的解释器   4、默认解释器生效  ......
  • vs code 中 python 项目 settings.json 是做什么用的
    在VisualStudioCode中,项目的settings.json文件是用于配置项目设置的文件。其中,settings.json文件中保存了项目特定的设置,可以覆盖全局默认设置或用户设置。对于Python项目来说,settings.json文件可以用于配置以下内容:Python解释器路径:通过"python.pythonPath"属性......
  • 软件测试|Django 入门:构建Python Web应用的全面指南
    引言Django是一个强大的PythonWeb框架,它以快速开发和高度可扩展性而闻名。本文将带您深入了解Django的基本概念和核心功能,帮助您从零开始构建一个简单的Web应用。什么是Django?Django是一个基于MVC(模型-视图-控制器)设计模式的Web框架,旨在简化Web应用程序的开发过程。它由Django软......
  • day④-Python之路
    本节大纲迭代器&生成器装饰器 基本装饰器多参数装饰器递归算法基础:二分查找、二维数组转换正则表达式常用模块学习作业:计算器开发实现加减乘除及拓号优先级解析用户输入 1-2*((60-30+(-40/5)*(9-2*5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2......
  • Python 命令行工具库:Fire
    Python命令行工具库:FirePythonFire是Google开源的一个可从任何Python代码自动生成命令行接口(CLI)的库。PythonFire是一种在Python中创建CLI的简单方法。PythonFire是开发和调试Python代码的有用工具。PythonFire帮助探索现有代码或将其他人的代码转换为CL......
  • python内置函数 - zip
    1,zip(可迭代对象1, 可迭代对象2...)fromcollections.abcimportIteratormy_list_1=[1,2,3,4]my_list_2=[6,7,8]result=zip(my_list_1,my_list_2)#该迭代器返回tupleprint(type(result))#<class'zip'>print(isinstance(result,Iterator))#True......
  • Python使用 - 生成器, yield的使用
     fromcollections.abcimportIteratordeftest_yield(n):foriinrange(n):yieldi*2#暂停在当前步骤,返回值,下次继续从暂停位置继续return-1my_gen=test_yield(3)print(type(my_gen),isinstance(my_gen,Iterator))#<class'genera......
  • python内置函数 - map, reduce, filter, sort
    1,map(fn,可迭代对象)参数fn为一个参数的函数lambda方式my_list=[2,3,4,5]result=map(lambdax:x*x,my_list)#返回元素平方值的迭代器print(type(result))#<class'map'>print(isinstance(result,collections.abc.Iterator))#Truenew_list=list(re......