鲲鹏 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 相关文章推荐
Nginx同一个域名配置多个项目的实现方法
Mar 31 Servers
Nginx优化服务之网页压缩的实现方法
Mar 31 Servers
Nginx解决前端访问资源跨域问题的方法详解
Mar 31 Servers
Nginx服务器添加Systemd自定义服务过程解析
Mar 31 Servers
Nginx服务器如何设置url链接
Mar 31 Servers
Nginx源码编译安装过程记录
Nov 17 Servers
Nginx配置https的实现
Nov 27 Servers
Apache Hudi数据布局黑科技降低一半查询时间
Mar 31 Servers
Windows server 2012 配置Telnet以及用法详解
Apr 28 Servers
Apache SeaTunnel实现 非CDC数据抽取
May 20 Servers
kubernetes集群搭建Zabbix监控平台的详细过程
Jul 07 Servers
Nginx如何获取自定义请求header头和URL参数详解
Jul 23 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
综合图片计数器
2006/10/09 PHP
thinkphp实现like模糊查询实例
2014/10/29 PHP
php实现计数器方法小结
2015/01/05 PHP
phpstorm最新激活码分享亲测phpstorm2020.2.3版可用
2020/11/22 PHP
javascript 获取select下拉列表值的代码
2009/09/07 Javascript
浅谈javascript的原型继承
2012/07/25 Javascript
YUI模块开发原理详解
2013/11/18 Javascript
JavaScript中for循环的使用详解
2015/06/03 Javascript
jQuery原型属性和原型方法详解
2015/07/07 Javascript
js clearInterval()方法的定义和用法
2015/11/11 Javascript
原生javascript实现解析XML文档与字符串
2016/03/01 Javascript
jquery zTree异步加载、模糊搜索简单实例分享
2016/03/24 Javascript
JS生成某个范围的随机数【四种情况详解】
2016/04/20 Javascript
Bootstrap每天必学之警告框插件
2016/04/26 Javascript
js实现浏览器倒计时跳转页面效果
2016/08/12 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单
2016/11/25 Javascript
JavaScript创建对象的七种方式(推荐)
2017/06/26 Javascript
jQuery实现点击关注和取消功能
2017/07/03 jQuery
基于Vue中点击组件外关闭组件的实现方法
2018/03/06 Javascript
如何解决日期函数new Date()浏览器兼容性问题
2019/09/11 Javascript
layer弹出层扩展主题的方法
2019/09/11 Javascript
详解js创建对象的几种方式和对象方法
2021/03/01 Javascript
[46:20]CHAOS vs Alliacne 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python配置mysql的教程(推荐)
2017/10/13 Python
Python下载网络文本数据到本地内存的四种实现方法示例
2018/02/05 Python
Python使用 Beanstalkd 做异步任务处理的方法
2018/04/24 Python
Python命名空间的本质和加载顺序
2018/12/17 Python
基于python traceback实现异常的获取与处理
2019/12/13 Python
纽约JewelryAffairs珠宝店:精细金银时尚首饰
2017/02/05 全球购物
高档奢华时装在线目的地:FORWARD by elyse walker
2017/10/16 全球购物
Wilson体育用品官网:美国著名运动器材品牌
2019/05/12 全球购物
英国门销售网站:Green Tree Doors
2020/01/07 全球购物
计算机网络专业个人的自我评价
2013/10/17 职场文书
小学生成绩单评语
2014/12/31 职场文书
检讨书范文1000字
2015/01/28 职场文书
走进毛泽东观后感
2015/06/04 职场文书