Redhat Linux下的python版本升级

Linux系统升级及内核版本升级 一、背景 工作中有时会遇到系统版本过旧,无法满足安全扫描后的安全要求,系统漏洞数量多,处理难度较大,这时,我们就需要升级OS或Linux内核版本; 二、升级操作 2.1、 redhat/CentOS系统 三、附录:包升级命令 1)配置yum更新源 /etc/yum.repos.d目录下新建主机的yum源,.repos文件中,repositoryid:指定一个仓库,name指定仓库名称, baseurl:指定仓库的URL,mirrorlist指定仓库的镜像站点,enable是否启用本仓库,gpgcheck 阅读详情
执行#Python与#python -V,看到版本号是2.4.3,很老了,而且之前写的都是跑在python3.X上面的,3.X和2.X有很多不同,
有兴趣的朋友可以参考下这篇文章: 
http://www.jb51.net/article/34011.htm

更新python千万不要把老版本的删除!新老版本是可以共存的,很多基本的命令、
软件包都要依赖预装的老版本python的,比如yum。 

一、升级到2.7.3
1. 升级安装
首先下载源tar包
可利用linux自带下载工具wget下载,如下所示:
# wget http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tar.gz

下载完成后到下载目录下,解压
# tar -zxvf Python-2.7.3.tar.gz

进入解压缩后的文件夹
cd Python-2.7.3

在编译前先在/usr/local建一个文件夹python2.7.3(作为python的安装路径,以免覆盖老的版本)
# mkdir /usr/local/python2.7.3

在解压缩后的目录下编译安装
# ./configure --prefix=/usr/local/python2.7.3
# make
# make install

此时没有覆盖老版本,再将原来/usr/bin/python链接改为别的名字
# mv /usr/bin/python /usr/bin/python_old

再建立新版本python的链接
# ln -s /usr/local/python2.7.3/bin/python2.7 /usr/bin/python

这个时候输入
# python

就会显示出python的新版本信息
view sourceprint?
Python 2.7.3 (default, Sep 29 2013, 11:05:02)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-54)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

2.运行程序时出现错误:
File "~/PythonInstall/lib/python2.7/multiprocessing/process.py", line 129, in start
    from .forking import Popen
  File "~/PythonInstall/lib/python2.7/multiprocessing/forking.py", line 58, in <module>
    from pickle import Pickler
  File "~/PythonInstall/lib/python2.7/pickle.py", line 1266, in <module>
    import binascii as _binascii
ImportError: No module named binascii
是因为升级python版本不正常导致的。
 
回到源文件目录:
# cd .../Python-2.7.3
[Python-2.7.3]# make -s
building dbm using gdbm
/opt/PJT_python/python-2.7.3/Python-2.7.3/Modules/_sqlite/connection.c: In function '_pysqlite_set_result':
/opt/PJT_python/python-2.7.3/Python-2.7.3/Modules/_sqlite/connection.c:552: error: 'sqlite3_int64' undeclared 

(first use in this function)
/opt/PJT_python/python-2.7.3/Python-2.7.3/Modules/_sqlite/connection.c:552: error: (Each undeclared identifier is 

reported only once
/opt/PJT_python/python-2.7.3/Python-2.7.3/Modules/_sqlite/connection.c:552: error: for each function it appears in.)
/opt/PJT_python/python-2.7.3/Python-2.7.3/Modules/_sqlite/connection.c:552: error: expected ')' before 

'PyInt_AsLong'
/opt/PJT_python/python-2.7.3/Python-2.7.3/Modules/_sqlite/connection.c: In function '_pysqlite_build_py_params':
/opt/PJT_python/python-2.7.3/Python-2.7.3/Modules/_sqlite/connection.c:583: error: 'sqlite3_int64' undeclared 
(first use in this function)
/opt/PJT_python/python-2.7.3/Python-2.7.3/Modules/_sqlite/connection.c:583: error: expected ';' before 'val_int'
/opt/PJT_python/python-2.7.3/Python-2.7.3/Modules/_sqlite/connection.c:596: error: 'val_int' undeclared (first use  in this function)
/usr/bin/ld: /usr/local/lib/libz.a(adler32.o): relocation R_X86_64_32 against `a local symbol' can not be used when 

making a shared object; recompile with -fPIC
/usr/local/lib/libz.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
/usr/bin/ld: /usr/local/lib/libz.a(crc32.o): relocation R_X86_64_32 against `a local symbol' can not be used when 

making a shared object; recompile with -fPIC
/usr/local/lib/libz.a: could not read symbols: Bad value
collect2: ld returned 1 exit status

Python build finished, but the necessary bits to build these modules were not found:
_tkinter           bsddb185           dl              
imageop            sunaudiodev                        
To find the necessary bits, look in setup.py in detect_modules() for the module's name.

Failed to build these modules:
_sqlite3           binascii           zlib 
​
升级安装zlib
# wget http://sourceforge.net/projects/libpng/files/zlib/1.2.8/zlib-1.2.8.tar.gz
# tar -zxvf zlib-1.2.8.tar.gz 
# cd zlib-1.2.8
# ./configure 
# make install

# cd ../Python-2.7.3
# make -s
building dbm using gdbm
/opt/PJT_python/python-2.7.3/Python-2.7.3/Modules/_sqlite/connection.c: In function '_pysqlite_set_result':
/opt/PJT_python/python-2.7.3/Python-2.7.3/Modules/_sqlite/connection.c:552: error: 'sqlite3_int64' undeclared 

(first use in this function)
/opt/PJT_python/python-2.7.3/Python-2.7.3/Modules/_sqlite/connection.c:552: error: (Each undeclared identifier is reported only once
/opt/PJT_python/python-2.7.3/Python-2.7.3/Modules/_sqlite/connection.c:552: error: for each function it appears in.)
/opt/PJT_python/python-2.7.3/Python-2.7.3/Modules/_sqlite/connection.c:552: error: expected ')' before 

'PyInt_AsLong'
/opt/PJT_python/python-2.7.3/Python-2.7.3/Modules/_sqlite/connection.c: In function '_pysqlite_build_py_params':
/opt/PJT_python/python-2.7.3/Python-2.7.3/Modules/_sqlite/connection.c:583: error: 'sqlite3_int64' undeclared 

(first use in this function)
/opt/PJT_python/python-2.7.3/Python-2.7.3/Modules/_sqlite/connection.c:583: error: expected ';' before 'val_int'
/opt/PJT_python/python-2.7.3/Python-2.7.3/Modules/_sqlite/connection.c:596: error: 'val_int' undeclared (first use in this function)

Python build finished, but the necessary bits to build these modules were not found:
_tkinter           bsddb185           dl              
imageop            sunaudiodev                        
To find the necessary bits, look in setup.py in detect_modules() for the module's name.

Failed to build these modules:
_sqlite3 

升级安装sqlite3
# cd ..
# wget http://www.sqlite.org/2014/sqlite-autoconf-3080500.tar.gz
# tar -zxvf sqlite-autoconf-3080500.tar.gz
# cd sqlite-autoconf-3080500
# ./configure
# make
# make install

# cd ..
# cd python-2.7.3
# make -s
building dbm using gdbm

Python build finished, but the necessary bits to build these modules were not found:
_tkinter           bsddb185           dl              
imageop            sunaudiodev                        
To find the necessary bits, look in setup.py in detect_modules() for the module's name.

# make clean
# make all
# make install

到此,程序就能正常运行了;

二、升级到3.3.0
更新python: 
第1步:更新gcc,
因为gcc版本太老会导致新版本python包编译不成功 代码如下:
  #yum -y install gcc 

系统会自动下载并安装或更新,等它自己结束 

第2步:下载Python-3.3.0软件包 
代码如下:
# wget --no-check-certificate http://python.org/ftp/python/3.3.0/Python-3.3.0.tar.bz2 

注意:按照上述命令下载的软件包会存放在你当前的工作目录下,
wget命令是一个从网络上自动下载文件的自由工具,具体用法,
请参考这篇文章:http://www.jb51.net/os/RedHat/73089.html 

说明:命令中的数字就是版本号,你也可以把3.3.0换成你需要的版本.

第3步:解压已下载的二进制包并编译安装 
代码如下:
#tar -jxvf Python-3.3.0.tar.bz2 
#cd Python-3.3.0 
#./configure 
#make all 
#make install 
#make clean 
#make distclean 
# /usr/local/bin/python3 –V 
编译安装完毕以后,可以输入上面一行命令,查看版本 

第4步:建立软连接指向到当前系统默认python命令的bin目录,让系统使用新版本python 
#mv /usr/bin/python /usr/bin/python2.4 //当前python的版本为2.4所以是python2.4 
#ln -s /usr/local/bin/python3.3 /usr/bin/python 
输入
#python -V,
即可查看当前默认python版本 
默认的python成功指向3.3.0以后,yum不能正常使用,需要修改yum的配置文件 

第5步:修改yum配置文件 
#vi /usr/bin/yum 
把文件头部的
#!/usr/bin/python  改成  #!/usr/bin/python2.4 //改为之前的老版本号 
保存退出,yum即可正常使用。

如若有其他命令、软件不能正常使用,仿照yum配置文件的修改方法,修改其配置文件即可。 
至此,更新完毕。
RedHat离线安装python3.9 redhat python3.9 安装 虚拟环境virtualenv 阅读详情

相关推荐

LINUX CENTOS下单网卡设置多个IP的方法(REDHAT)

申明:以下是本人参考网上各种方法亲自实践结果(适用于LINUX CENNOS,REDHAT) 1、用root权限的用户登录CENTOS,进入network-scripts文件夹下(本步骤可以省略,与二步骤一起完成): shell命令:cd /ect/sysconfig/network-scripts/ 2、复制现在正在使用的网卡配置信息文件 shell命令:cp ifcfg-eth0 if

summerinsist的专栏 8594

python3编程小结

1、python3中requests模块的content方法和text方法的区别: (1)content返回的是字节码(b’),而text中存的是Beautifulsoup根据猜测的编码方式将content内容编码为字符串; (2)对于纯ASCII,两者输出一样; (3)一般较多使用text,但如果出现乱码,需要用content.decode('utf-8')解码,中文常用utf-8、GBK、GB2312; 2、python3中binascii模块: (1)b2a_hex(data):将字符串转换

极客 596

Java开发者必备:Ollama4j客户端库全面指南与实战

在AI应用开发领域,本地部署大型语言模型(LLM)已成为降低成本和提升隐私安全的重要趋势。其核心原理是通过REST API与模型服务器交互,实现文本生成、对话和语义理解等功能。这一技术为Java生态系统带来了显著的工程价值,使开发者能够便捷地将AI能力集成到企业级应用中。Ollama4j作为一款专为Java设计的轻量级客户端库,通过封装底层HTTP通信和JSON处理,提供了类型安全、面向对象的API,极大地简化了与Ollama服务器的交互。它全面支持流式生成、多轮对话、嵌入向量计算以及高级的**工具调用**

weixin_28295799的博客 437

python import random 报错,Python import random報錯處理辦法

python安裝失敗:make的時候報錯:/usr/include/tkDecls.h:1542: error: expected ‘)’ before ‘*’ token/usr/include/tkDecls.h:1639: error: expected declaration specifiers or ‘...’ before ‘Drawable’/usr/include/tkDecls...

weixin_33014843的博客 562

Cadence创建异形焊盘教程(详细操作)

背景:一些常见的矩形/圆形焊盘,设置参数就可。碰到非规则的一些焊盘,那只能用Cadence Allegro PCB来画咯。 一、新建图形 【File】——>【New…】 弹出如下窗口,选择绘制的类型Shape symbol、路径,输入名字 二、设置参数 【Setup】——>【Design Parameters…】 Enhanced display modes:增强型显示模型。全部勾选上。 在【Design】设置单位为mm 设置偏移量(-50,-50) 三、绘制图形 1、找到原点,即参考

qq_42057393的博客 2万+

CANoe信号波形分析保姆级教程:Graphic窗口从配置到实战避坑

本文详细解析了CANoe的Graphic窗口在信号波形分析中的高效配置与实战应用技巧。从信号显示模式选择、测量光标进阶操作到信号分组策略,提供工程化解决方案,帮助工程师快速定位总线信号异常,提升汽车电子开发与测试效率。

weixin_29279047的博客 269

ModuleNotFoundError: No module named ‘xxx‘可能的解决方案大全

"ModuleNotFoundError: No module named 'xxx'"这个报错是个非常常见的报错,几乎每个python程序员都遇到过,导致这个报错的原因也非常多,下面是我曾经遇到过的原因和解决方案 module包没安装 忘了import 没有__init__.py文件 package包的版本不对 自定义的包名与安装的包名相同,导致import包的时候导错了包 没设置PYTHO...

Lucky小黄人的博客 31万+

海康威视国内版监控设备改英文界面难题:原因解析与解决方案

跨境安防设备部署中,国内采购的海康威视监控设备常因仅支持中文界面导致海外用户无法操作。本文剖析了该问题的核心原因:海康威视对国内版和海外版设备实行区域锁定策略,国内版固件仅内置中文且无法通过常规方式切换语言。针对此问题,文章提供了三种解决方案:1)官方合规的海外版固件更换;2)低成本的操作界面翻译与远程协助;3)长期更换海外版设备的彻底解决方案。同时给出了跨境采购的注意事项,强调应提前确认设备版本、拒绝非官方改造并预留适配时间。

海康威视技术支持 3963

centos install python 问题及解决方案

1. Failed to build these modules: _curses _curses_panel _ssl sudo yum install ncurses-devel 2.

qq_30534535的博客 1848

太美了!现代女主jk海军风穿搭四视图

哪个女孩子初高中的时候不买几套JK衣服啊,穿上完全是青春女孩。那还愣着干啥,不得也给你的漫剧女主也穿上!直接就是分享三套JK穿搭,红棕双麻花辫配经典水手服,是那种乖乖巧巧的元气学妹;粉色羊毛卷双马尾,搭配蝴蝶结和小挎包甜度直接拉满;还有灰棕色侧麻花辫,浅蓝上衣配黑色百褶裙,温柔里又带点小酷。下面把这三套角色的完整提示词分享出来,喜欢哪套就拿去参考,改改发型和配色,还能继续解锁新角色!

欢迎来到鸾姝淡月博客,专为程序员和编程爱好者打造的技术博客。我们分享编程语言趋势、开发工具、编程哲学、职业发展等,助你掌握新技术,优化技能,激发编程热情。 55

4.6 知识库使用指南:如何让AI Agent拥有专业知识

本文介绍了如何为AI Agent构建和使用知识库。知识库的作用是为Agent提供专业知识,包含文档、数据和规则,可用于专业问答和知识检索。使用方法包括创建知识库(上传文档)、向量化处理、知识检索以及在Agent中的应用。核心要点是理解知识库的价值和使用流程。文章还提出了构建方法、检索优化和应用实践等思考题,建议准备高质量数据、优化检索效果并持续更新知识库。下节将介绍用LangGraph构建复杂AI应用。

yonggeit的博客 3012

CentOS/RedLat软件安装的正确姿势 + Python3.8升级示例

如何利用yum在进行Linux上进行软件安装,以及不得不知的Linux的官方yum源Epel。 EPEL是英语词汇Extra Packages for Enterprise Linux的缩写。EPEL由Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目;EPEL相当于一个第三方源。

jasonsei的博客 520

5、Raspberry Pi CPU架构与多线程编程详解

本文详细介绍了Raspberry Pi的CPU架构(包括ARMv6Z、ARMv7-A和ARMv8-A),通过/proc/cpuinfo解析硬件信息,并深入探讨了多线程编程的核心技术。内容涵盖pthread库的使用,如线程创建、属性设置、等待与分离、线程同步机制(互斥锁),以及实际应用场景如多媒体处理和网络服务。同时强调了线程安全、死锁预防和资源管理等关键注意事项,帮助开发者在Raspberry Pi上构建高效稳定的多线程应用。

sre5engineer的博客 95

Linux上运行appium脚本,Linux 上安装 appium 的辛酸

appium 在 windows 上的安装相对比较简单,但是在 linux 上的安装相对比较麻烦,所以这里记录一下总的来说,在 linux 环境下安装需要以下几步:1.安装 andriod sdk2.安装 python3.安装 node.js4.安装 npm5.安装 appium6.安装依赖库7.运行测试我的 linux 系统版本:Redhat 52.安装 Pythonappium 需要 pyth...

weixin_39899691的博客 410

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

RedHat下安装Python虚拟环境

工作一段时间之后发现踩过的坑有时候会忘了,然后再踩一边,非常不爽,于是决定把踩过得坑都记录下来。生产环境下安装虚拟环境是非常必要的,公司服务器和以往用的不同,所以还是踩了一些坑。操作系统:Red Hat 4.4.7-11python :2.7.41.升级python到2.7.4首先因为python版本和需要的不同先对python进行升级wget http://python.org/ftp/pyth...

cd_home的博客 932

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

redhat无法注册RHN的解决办法

1.问题 初学Linux,采用边实战nginx边学Linux命令的方式,这样学习的还快还真实一些.当然,问题来的很快.我使用的是redhat,安装pcre就出现了问题,如下: 1 [root@localhost ~]# yum install pcre 2 Loading "security" plugin 3 Loading "installonlyn" plugin 4 ...

weixin_30443895的博客 710

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

redhat7安装python3

1.安装python依赖的包 $ yum -y install gcc # 大多数类Unix操作系统(如Linux、BSD、Mac OS X等)采纳为标准的编译器 $ yum -y install zlib zlib-devel # 提供数据压缩用的函式库 $ yum -y install bzip2 bzip2-devel # 一个基于Burrows-Wheeler 变换的无损压缩软件 $ yu...

m0_46380305的博客 1193

Linux中yum,rpm,wget,apt-get区别及自带python版本升级

转载 https://www.cnblogs.com/zxqblogrecord/p/11027049.html 一般来说著名的linux系统基本上分两大类: RedHat系列: RedHat,Centos, Fedora等 Debian系列: Debian Ubuntu等 RedHat系列 常见的安装包格式 rpm 包,安装 rpm包的命令是“rpm -参数” 如: rpm -ivh --n...

qq_42825564的博客 804

RedHat 下Python环境的配置

安装pythonhttps://blog.youkuaiyun.com/O_OKKk/article/details/80170471 1.下载解压 通过命令wget下载安装包 wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz 2.解压 tar Python-3.6.3.tgz 3.进入解压后的目录,执行安装配置 ./configure --prefix=/usr/python3 安装到/usr/python3文件下 系统自

weixin_38848757的博客 1261

Python3 Linux安装(Redhat)

Python3 Linux安装(Redhat): 下载Python-3.6.4.tgz: https://www.python.org/downloads/release/python-364/ Yum 安装依赖包 (每个机器有所不同) yum install openssl-devel bzip2-devel expat-devel gdbm-dev...

baguashenp74070的博客 217

linux更新python2.7_RedHat升级Python到2.7.6

从今天开始学习Python!看了一下虚拟机RedHat中的python,发现还是原生的2.4.3,所以决定升级一下[root@linuxidc ~]# pythonPython 2.4.3 (#1, May 5 2011, 16:39:10)[GCC 4.1.2 20080704 (Red Hat 4.1.2-50)] on linux2Type "help", "copyright", "cr...

weixin_34246826的博客 307

redhat5 升级python 由2.4至2.7 和安装 wxpython

因折腾了几天,所以整理一下自己的做法,也参考了一些大神的做法,老是安装失败 其中用rpm的安装,老是安装到2.4版本的上面,所以自己编译源码,来安装, 下面是做法。留做以后参考: redhat5 升级python 由2.4至2.7 和安装 wxpython 1,下载 python 2.7   http://www.python.org/ftp/python/2.7.3/Pyt

danieljcky的专栏 4324

Linux redhat7.0 源码编译安装python3.6

Linux redhat7.2下源码编译安装python3.6 RedHat7.2中默认的python版本是python2.7,我们此次安装的是python3.6 安装环境: Linux RedHat7.2系统 python3.6的安装包 安装步骤: 下载python3.6安装包 编译安装 ./configure  make &amp;&amp; make install 添加pyt...

sinceNow的博客 932

RedHat(Linux)的Python3安装

1.下载解压通过命令wget下载安装包wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz2.解压tar Python-3.6.3.tgz3.进入解压后的目录,执行安装配置./configure --prefix=/usr/python3安装到/usr/python3文件下系统自带的python是安装在/usr/bin/pyth...

O_OKKk的博客 2596

RedHat下安装Python3

RedHat下安装Python3步骤 1. 下载解压。 $ wget https://www.python.org/ftp/python/3.4.1/Python-3.4.1.tgz $ tar zxvf Python-3.4.1.tgz 2. 进入解压后的目录,执行安装配置 $ ./configure 或指定安装目录 $ ./configure --prefix=/opt/

lgstudyvc的专栏 5849
上一篇: python邮件发送方法一览
下一篇: 轻量级web server Tornado代码分析
北雨南萍
北雨南萍 领域专家: 操作系统技术领域 领域专家: 操作系统技术领域
博客等级 码龄20年 2665粉丝 453原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北雨南萍

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值