ContOS7.5 python2.7.5 离线升级 python3.7.4

1. 第一步:下载安装包 解压

网址: https://www.python.org/ftp/python/3.3.0/Python-3.7.4.tgz

解压文件
tar -xzvf Python-3.7.4.tgz

2. 第二步:执行安装

2.1 创建存放目录

创建存放目录

mkdir /usr/local/python3  

2.2 运行脚本 configure

在解压的tar目录下执行

./configure

configure功能:检查编译环境/相关库文件/配置参数,生成makefile

configure是一个shell脚本,根据平台的特性生成Makefile文件,为下一步的编译做准备。
可以通过在 configure 后加上参数来对安装进行控制,比如下面就是指定安装目录/usr/local/python3。
如果没有用这个选项,安装过程结束后,该软件所需的软件被复制到不同的系统目录下,比较混乱。

2.2.1 注意:

Traceback (most recent call last):
File "./ImageScan.py", line 3, in <module>
import datetime
File "/usr/local/lib/python3.7/datetime.py", line 8, in <module>
import math as _math
ImportError: /usr/local/lib/python3.7/lib-dynload/math.cpython-37m-x86_64-linux-gnu.so: undefined symbol: PyFloat_Type

如果出现上述错误,请添加参数

./configure --enable-shared

参考:
https://blog.51cto.com/3427850/1077262?source=drt

2.3 make编译make install安装

make && make install

根据makefile制定的规则,将c\c++文件编译成*.o文件,然后进一步生成可执行文件。
make  对源代码进行编译,生成可执行文件
make install 将生成的可执行文件安装到当前计算机中

2.4 最后运行make clean

make clean

删除一些临时文件(删除源代码(C\C++ code)生成的执行文件和所有的中间目标文件)

3. 第三步:创建软连接

查看

python3.7 -V 

ln -s /usr/local/python3/bin/python3.7 /usr/bin/python

4. 总结报错解决

4.1 问题一:configure: error: no acceptable C compiler found in $PATH 问题解决

  1. 如果可以直接install

    安装外部函数库(gcc)

     yum install gcc -y
    
  2. 解决:(离线安装方法)本地没有gcc,CentOS 7系统离线安装gcc
    查看gcc需要的安装包
    下载一个CentOS-7-x86_64-DVD-1804-7.5.iso 安装包,然后解压
    下载地址看我另外一个博客,应有竟有:
    https://blog.csdn.net/lqy971966/article/details/104963908
    在这里插入图片描述
    汇总后的:
    在这里插入图片描述
    这里除了libffi-* 和 zlib-*之外的都是gcc需要的包

然后进行安装即可
rpm -Uvh *.rpm --nodeps --force

--nodeps  不验证套件档的相互关联性。
--force  强行置换套件或文件。

验证
gcc -v

https://www.cnblogs.com/qqflying/p/10916564.html
https://blog.csdn.net/White_Black007/article/details/81357234

4.1.1 gcc 和 g++

gcc 为GNU Compiler Collection的缩写,可以编译C和C++源代码等,它是GNU开发的C和C++以及其他很多种语言的编译器
(最早的时候只能编译C,后来很快进化成一个编译多种语言的集合,如Fortran、Pascal、Objective-C、Java、Ada、 Go等。)
gcc 在编译C++源代码的阶段,只能编译C++源文件,而不能自动和C++程序使用的库链接
(编译过程分为编译、链接两个阶段,源程序文件被编译成目标文件,多个目标文件连同库被链接成一个最终的可执行文件,可执行文件被加载到内存中运行)。
因此,通常使用g++命令来完成C++程序的编译和连接,该程序会自动调用 gcc 实现编译。
g++ 也能编译C源代码,只不过把会把它当成C++源代码。
后缀为.c的源文件,gcc把它当作是C程序,
而g++把它当作是c++程序;后缀为.cpp的,两者都会认为是c++程序。注意,虽然c++是c的超集,但是两者对语法的要求是有区别的。

https://blog.csdn.net/zyz511919766/article/details/14002497/

4.2 问题二:安装时报错 ModuleNotFoundError: No module named '_ctypes’的解决办法

  1. 如果可以直接install

    安装外部函数库(libffi)

     yum install libffi-devel -y
    
  2. 解决:(离线安装方法)安装libffi-devel
    找到libffi-*包
    在这里插入图片描述

1、执行如下命令:
(在线安装:yum install libffi-devel )

2、从"./configure …"重新安装

https://blog.csdn.net/qq_42353939/article/details/94609591

4.3 问题三:安装时报错 zipimport.ZipImportError: can’t decompress data; zlib not available

  1. 如果可以直接install

    从错误信息分析,就是缺少了zlib的解压缩类库,安装即可

     yum -y install zlib*
    

    安装完成之后,重新安装即可,所有的问题都已经正常解决了

  2. 解决:(离线安装方法)缺少了zlib的解压缩类库,安装即可
    在这里插入图片描述

(在线安装:yum -y install zlib*)
2、从"./configure …"重新安装
https://blog.csdn.net/blueheart20/article/details/72827666

4.4 问题三:python3: error while loading shared libraries: libpython3.7m.so.1.0: cannot open shared object file: No such file or directory

将libpython3.7m.so.1.0 拷贝至/usr/lib64/目录下即可

[root@glusterfs Python-3.7.4]# find / -name libpython3.7m.so.1.0
/usr/local/lib/libpython3.7m.so.1.0
^C
[root@glusterfs Python-3.7.4]# cp /usr/local/lib/libpython3.7m.so.1.0 /usr/lib
lib/     lib64/   libexec/ 
[root@glusterfs Python-3.7.4]# cp /usr/local/lib/libpython3.7m.so.1.0 /usr/lib64/
[root@glusterfs Python-3.7.4]# python3 -V
Python 3.7.4
[root@glusterfs Python-3.7.4]#

5. centos7在线升级python2.7到python3.7

#查看当前版本
[root@guangzhou src]# python -V
Python 2.7.5
[root@guangzhou src]# wget https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tgz
[root@guangzhou src]# tar -zxvf Python-3.7.5.tgz
[root@guangzhou Python-3.7.5]# mkdir /usr/local/python3.7.5
[root@guangzhou Python-3.7.5]# ./configure
[root@guangzhou Python-3.7.5]# make && make install
/* 这里如果中间出错就解决 */
[root@guangzhou bin]# /usr/local/python3.7.5/bin/python3.7 -V
Python 3.7.5
#为不影响已经使用python2.7.5版本安装的软件继续使用,python3.7使用软链
[root@guangzhou bin]# ln -s /usr/local/python3.7.5/bin/python3.7 /usr/bin/python3
[root@guangzhou bin]# ln -s /usr/local/python3.7.5/bin/pip3 /usr/bin/pip3
#再次打印3.7版本
[root@guangzhou python3.7.5]# python3 -V
Python 3.7.5

参考:
https://www.cnblogs.com/wscsq789/p/12269274.html

参考

Python2.7升级到Python3.7及其报错处理 在线安装
https://www.cnblogs.com/biaopei/p/12133562.html
https://blog.csdn.net/Aaronxiaobo/article/details/96121771

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值