鲲鹏 CentOS 7 安装Python3.7


Posted in Servers onMay 11, 2022

具体编译过成与正常的Python源代码在x86平台上的过程无异,此篇随笔仅当用作复制黏贴的备忘录。不得不说在一个老旧系统上安装一个老旧的Python版本,从头编译一个Python还是一个较为稳健的选择。

获取源代码

Python官网处下载所需源码版本[https://www.python.org/downloads/source/]

curl -O https://www.python.org/ftp/python/3.7.13/Python-3.7.13.tgz

准备工作(安装依赖)

其实依赖不装全也是能够顺利编译完成的,只不过在make阶段会放弃部分组件的构建如压缩算法和ssl,tk一类的组件,但是有条件还是建议装全咯。

yum install -y gcc make
yum install -y openssl openssl-devel openssl-static bzip2 bzip2-devel ncurses ncurses-devel readline readline-devel xz lzma xz-devel sqlite sqlite-devel gdbm gdbm-devel expat-devel tk tk-devel tcl tcl-devel libffi libffi-devel

生成Makefile

这边主要注意下几个参数,--enable-shared生成动态依赖库(非必要),--prefix 指定Python安装目录(务必指定,尤其在有多个python环境下的时候,你也不想覆盖了系统自带的Python导致系统组件如yum一类的挂掉),--enable-optimizations(优化参数非必要)。还有就是,如果你的openssl安装到了其他目录或是有多openssl的环境请使用--with-openssl=DIR指定你使用的openssl版本,这在低版本操作系统下构建高版本python时非常重要,已centos7为例子它自带的openssl-1.0.2不足以用于构建Python3.10(python3.10需要openssl 1.1.1以上),但是贸然的修稿系统的openssl版本会导致其余依赖程序的崩溃,所以你只能在特定目录下安装openssl并使用。

# 解压源码包
tar zxvf Python-3.7.13.tgz && cd Python-3.7.13
# 生成Makefile
./configure --enable-shared --prefix=/usr/local/python3.7 --enable-optimizations

构建&&安装

有一说一在鲲鹏这种主频较低的cpu上编译着实挺慢的

make && make install

添加环境变量

echo 'export PATH="$PATH:/usr/local/python3.7.3/bin"' >> /etc/profile

其他小问题

找不到libpython3.7m.so.1.0

[root@localhost Python-3.7.13]# python3
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放到系统能找到的地方便是

# 在编译的目录下
cp -f libpython3.7m.so.1.0 /lib64

升级pip上的小坑

如果你要保证在多python环境下(python2和python3共存)下升级pip,建议使用

curl https://bootstrap.pypa.io/get-pip.py | python3

来升级,已保证升级过程不会错误的调用python2

影响pyinstaller打包后python程序移植性的因素

除了cpu的架构,操作系统位数以外不谈(这些太容易被注意了),指的注意的是glib版本。如果你的编译环境有升级内核的行为导致glibc版本被改变了,高版本的打包后程序是无法在低版本的glibc系统上运行的(反过来没问题)。所以如果想让打包的程序在尽可能多的操作系统上运行请在低版本的glibc上构建你的程序,这边有一个建议的组合centos5.8+python3.6.1,应该是一个较为极限的组合了,glibc版本2.5。 你要问咋看?ldd --version一下就成。

到此这篇关于国产化设备鲲鹏CentOS7上源码安装Python3.7的文章就介绍到这了!


Tags in this post...

Servers 相关文章推荐
详解Apache SkyWalking 告警配置指南
Apr 22 Servers
Nginx 反向代理解决跨域问题多种情况分析
Jan 18 Servers
忘记Grafana不要紧2种Grafana重置admin密码方法详细步骤
Apr 07 Servers
Nginx隐藏式跳转(浏览器URL跳转后保持不变)
Apr 07 Servers
Mac电脑OS系统下安装Nginx的详细教程
Apr 14 Servers
Tomcat弱口令复现及利用
May 06 Servers
阿里云服务器Ubuntu 20.04上安装Odoo 15
May 20 Servers
Nginx 配置 HTTPS的详细过程
May 30 Servers
阿里云服务器部署RabbitMQ集群的详细教程
Jun 01 Servers
nginx七层负载均衡配置详解
Jul 15 Servers
win7配置本地ftp服务器的图文教程
Aug 05 Servers
Tomcat安装使用及部署Web项目的3种方法汇总
Aug 14 Servers
在容器中使用nginx搭建上传下载服务器
May 11 #Servers
阿里云国际版 使用Nginx作为HTTPS转发代理服务器
May 11 #Servers
nginx 配置缓存
May 11 #Servers
Nginx的gzip相关介绍
May 11 #Servers
详解如何使用Nginx解决跨域问题
May 06 #Servers
配置nginx负载均衡
May 06 #Servers
tomcat下部署jenkins的方法
You might like
自动生成文章摘要的代码[PHP 版本]
2007/03/20 PHP
Windows下Apache + PHP SESSION丢失的解决过程全纪录
2015/04/07 PHP
thinkPHP使用pclzip打包备份mysql数据库的方法
2016/04/30 PHP
PHP读MYSQL中文乱码的快速解决方法
2016/10/01 PHP
php/JS实现的生成随机密码(验证码)功能示例
2019/06/06 PHP
JavaScript中void(0)的具体含义解释
2007/02/27 Javascript
js控制分页打印、打印分页示例
2014/02/08 Javascript
vue.js+Element实现表格里的增删改查
2017/01/18 Javascript
js读取json文件片段中的数据实例
2017/03/09 Javascript
Bootstrap table使用方法总结
2017/05/10 Javascript
vue中element 上传功能的实现思路
2018/07/06 Javascript
vue 点击按钮增加一行的方法
2018/09/07 Javascript
详解如何为你的angular app构建一个第三方库
2018/12/07 Javascript
vue中格式化时间过滤器代码实例
2019/04/17 Javascript
JavaScript一元正号运算符示例代码
2019/06/30 Javascript
vue element-ui中table合计指定列求和实例
2020/11/02 Javascript
Python3.x对JSON的一些操作示例
2017/09/01 Python
Python自定义简单图轴简单实例
2018/01/08 Python
python求最大连续子数组的和
2018/07/07 Python
Python enumerate函数遍历数据对象组合过程解析
2019/12/11 Python
Python定义一个Actor任务
2020/07/29 Python
Python列表推导式实现代码实例
2020/09/09 Python
python报错TypeError: ‘NoneType‘ object is not subscriptable的解决方法
2020/11/05 Python
Python3使用tesserocr识别字母数字验证码的实现
2021/01/29 Python
微软英国官方网站:Microsoft英国
2016/10/15 全球购物
湖南卫视在线视频媒体平台:芒果TV
2019/10/30 全球购物
土木工程专业自荐信
2013/10/04 职场文书
应届生简历中的自我评价
2014/01/13 职场文书
党的群众路线教育实践活动自我剖析材料
2014/10/08 职场文书
公司委托书格式范文
2014/10/09 职场文书
学校法制宣传日活动总结
2014/11/01 职场文书
2015年党建工作总结
2015/03/30 职场文书
具结保证书范本
2015/05/11 职场文书
安全第一课观后感
2015/06/18 职场文书
工作自我评价范文
2019/03/21 职场文书
2019年浪漫婚礼证婚词
2019/06/27 职场文书