鲲鹏 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处理http请求实现过程解析
Mar 31 Servers
Nginx使用Lua模块实现WAF的原理解析
Sep 04 Servers
nginx安装以及配置的详细过程记录
Sep 15 Servers
tomcat的catalina.out日志按自定义时间格式进行分割的操作方法
Apr 02 Servers
HDFS免重启挂载新磁盘
Apr 06 Servers
Apache Hudi 加速传统的批处理模式
Apr 24 Servers
如何开启Apache,Nginx和IIS服务器的GZIP压缩功能
Apr 29 Servers
在容器中使用nginx搭建上传下载服务器
May 11 Servers
git中cherry-pick命令的使用教程
Jun 25 Servers
Apache自带的ab压力测试工具的实现
Jul 23 Servers
Linux在两个服务器直接传文件的操作方法
Aug 05 Servers
Elasticsearch6.2服务器升配后的bug(避坑指南)
Sep 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
支持oicq头像的留言簿(一)
2006/10/09 PHP
如何从一个php文件向另一个地址post数据,不用表单和隐藏的变量的
2007/03/06 PHP
php中in_array函数用法分析
2014/11/15 PHP
PHP统计当前在线用户数实例讲解
2015/10/21 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
2018/02/08 PHP
PHP基于PDO扩展操作mysql数据库示例
2018/12/24 PHP
Yii框架学习笔记之应用组件操作示例
2019/11/13 PHP
用Javscript实现表单复选框的全选功能
2007/05/25 Javascript
JS解决ie6下png透明的方法实例
2013/08/02 Javascript
javascript遍历控件实例详细解析
2014/01/10 Javascript
Javascript中的String对象详谈
2014/03/03 Javascript
javascript 封装Date日期类实例详解
2017/05/28 Javascript
VueJs 将接口用webpack代理到本地的方法
2017/11/27 Javascript
解决vue单页面应用中动态修改title问题
2019/06/09 Javascript
JavaScript提升机制Hoisting详解
2019/10/23 Javascript
Vue+Bootstrap收藏(点赞)功能逻辑与具体实现
2020/10/22 Javascript
[01:38]DOTA2第二届亚洲邀请赛中国区预选赛出线战队晋级之路
2017/01/17 DOTA
pydev使用wxpython找不到路径的解决方法
2013/02/10 Python
python基础教程之类class定义使用方法
2014/02/20 Python
python 获取文件下所有文件或目录os.walk()的实例
2018/04/23 Python
python实现自动登录
2018/09/17 Python
python去除拼音声调字母,替换为字母的方法
2018/11/28 Python
Python使用正则表达式分割字符串的实现方法
2019/07/16 Python
python对绑定事件的鼠标、按键的判断实例
2019/07/17 Python
Django中提供的6种缓存方式详解
2019/08/05 Python
django rest framework serializers序列化实例
2020/05/13 Python
Python logging自定义字段输出及打印颜色
2020/11/30 Python
CSS3实现的炫酷菜单代码分享
2015/03/12 HTML / CSS
日本索尼音乐商店:Sony Music Shop
2018/07/17 全球购物
服装设计行业个人的自我评价
2013/12/20 职场文书
《桥》教学反思
2014/04/09 职场文书
自我介绍演讲稿范文
2014/08/21 职场文书
2014年商场国庆节活动策划方案
2014/09/16 职场文书
小学教师先进事迹材料
2014/12/15 职场文书
开学第一天的感想
2015/08/10 职场文书
导游词之江西赣州
2019/10/15 职场文书