鲲鹏 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工作原理和优化总结。
Apr 02 Servers
详解Apache SkyWalking 告警配置指南
Apr 22 Servers
Nginx反向代理学习实例教程
Oct 24 Servers
NGINX 权限控制文件预览和下载的实现原理
Jan 18 Servers
Nginx性能优化之Gzip压缩设置详解(最大程度提高页面打开速度)
Feb 12 Servers
Tomcat项目启动失败的原因和解决办法
Apr 20 Servers
Nginx的gzip相关介绍
May 11 Servers
CentOS7环境下MySQL8常用命令小结
Jun 10 Servers
Windows Server 2008配置防火墙策略详解
Jun 28 Servers
在windows server 2012 r2中安装mysql的详细步骤
Jul 23 Servers
Nginx跨域问题解析与解决
Aug 05 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
星际中的相关伤害
2020/03/04 星际争霸
兼容PHP5的PHP目录管理函数库
2008/07/10 PHP
php静态文件返回304技巧分享
2015/01/06 PHP
PHP加密解密函数详解
2015/10/28 PHP
详解PHP中cookie和session的区别及cookie和session用法小结
2016/06/12 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
2017/08/31 PHP
CL vs ForZe BO5 第二场 2.13
2021/03/10 DOTA
jQuery ul标签下拉菜单演示代码
2010/12/11 Javascript
javascript从image转换为base64位编码的String
2014/07/29 Javascript
jQuery中:eq()选择器用法实例
2014/12/29 Javascript
JavaScript限定图片显示大小的方法
2015/03/11 Javascript
js图片轮播效果实现代码
2020/04/18 Javascript
JavaScript中利用jQuery绑定事件的几种方式小结
2016/03/06 Javascript
BootStrap智能表单实战系列(七)验证的支持
2016/06/13 Javascript
jQuery实现可拖拽的许愿墙效果【附demo源码下载】
2016/09/14 Javascript
浅谈JavaScript的innerWidth与innerHeight
2017/10/12 Javascript
JsChart组件使用详解
2018/03/04 Javascript
jQuery表单元素过滤选择器用法实例分析
2019/02/20 jQuery
详解element上传组件before-remove钩子问题解决
2020/04/08 Javascript
Python获取单个程序CPU使用情况趋势图
2015/03/10 Python
使用Python的Twisted框架编写非阻塞程序的代码示例
2016/05/25 Python
python 字符串转列表 list 出现\ufeff的解决方法
2017/06/22 Python
Python cookbook(数据结构与算法)同时对数据做转换和换算处理操作示例
2018/03/23 Python
python实现手机销售管理系统
2019/03/19 Python
python使用Plotly绘图工具绘制气泡图
2019/04/01 Python
TensorFlow基于MNIST数据集实现车牌识别(初步演示版)
2019/08/05 Python
Python logging日志模块 配置文件方式
2020/07/12 Python
如何在mac版pycharm选择python版本
2020/07/21 Python
英国家居用品和家居装饰品购物网站:Cox & Cox
2019/08/25 全球购物
《鸿门宴》教学反思
2014/04/22 职场文书
励志演讲稿300字
2014/08/21 职场文书
庆六一宣传标语
2014/10/08 职场文书
张思德观后感
2015/06/09 职场文书
cf战队宣传语
2015/07/13 职场文书
运动会三级跳加油稿
2015/07/21 职场文书
详细聊一聊mysql的树形结构存储以及查询
2022/04/05 MySQL