前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Centos6下编译安装Python3.5.3

Centos6下编译安装Python3.5.3

作者头像
后场技术
发布2020-09-03 12:00:05
4260
发布2020-09-03 12:00:05
举报
文章被收录于专栏:后场技术后场技术

安装编译依赖

代码语言:javascript
复制
# yum -y install gcc zlib zlib-devel openssl openssl-devel

解释这几个依赖包的作用:

1、gcc这个就不多做解释了,就是编译器

2、zlib依赖是因为在安装Python3.5的编译过程中会依赖于系统的zlib,如果不安装编译的时候不加--with-zlib-dir参数,编译过程中自动安装pip3就会失败,手动模拟情况示例如下:

代码语言:javascript
复制
[root@Labhost1 src]# python3 get-pip.py
Traceback (most recent call last):
 File "get-pip.py", line 20061, in <module>
   main()
 File "get-pip.py", line 194, in main
   bootstrap(tmpdir=tmpdir)
 File "get-pip.py", line 82, in bootstrap
   import pip
zipimport.ZipImportError: can't decompress data; zlib not available

3、openssl依赖是因为在安装Python3.5的编译过程中会依赖于ssl模块,如果没有的话编译过程中自动安装pip3就会失败,手动模拟情况示例如下:

代码语言:javascript
复制
[root@Labhost1 src]# python3 get-pip.py
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Collecting pip
 Could not fetch URL https://pypi.python.org/simple/pip/: There was a problem confirming the ssl certificate: Can't connect to HTTPS URL because the SSL module is not available. - skipping
 Could not find a version that satisfies the requirement pip (from versions: )
No matching distribution found for pip

下载包编译安装

代码语言:javascript
复制
# wget --no-check-certificate https://www.python.org/ftp/python/3.5.3/Python-3.5.3.tgz
# tar zxf Python-3.5.3.tgz
# cd Python-3.5.3
# ./configure --prefix=/usr/local/ --with-zlib-dir --enable-shared

执行完成上面操作之后,然后修改Python-3.5.3目录下Modules/Setup文件:

代码语言:javascript
复制
# vim Modules/Setup

把Setup文件207 ~ 210四行内容前端的注释去掉,把:

代码语言:javascript
复制
#SSL=/usr/local/ssl
#_ssl _ssl.c \
#       -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
#       -L$(SSL)/lib -lssl -lcrypto

改为:

代码语言:javascript
复制
SSL=/usr/local/ssl
_ssl _ssl.c \
       -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
       -L$(SSL)/lib -lssl -lcrypto

改完之后,然后接着编译:

代码语言:javascript
复制
# make
# make install

验证结果

总结

为什么要写这篇文章,其实没有什么,就是记录自己安装实践过程中的历程,以后再有这种需求,直接照着博客文章,复制粘贴就好了。

那有人问了,Python不是有多版本管理的一些工具包吗,比如Pyenv、pythonbrew等工具。有这些便利的工具为什么不用?

确实这些工具还是相当不错的,我在做一些实验的使用本地开发用过pyenv,还是非常好用的,但是有时候一些准生产环境和线上,我们软件的版本是有严格的版本控制,不会允许多版本共存,除非有特殊情况,比如Centos6.*的yum命令就是基于Python2.6的,这个就不会动了。

所以作为一个运维我一直信奉:没有最好的,只有最适合自我的,只有适合自我场景、业务的任何情况都是合理的,其他的你给我说的天花乱坠,那我只能当你在扯淡。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-09-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 后场技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装编译依赖
  • 下载包编译安装
  • 验证结果
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档