问题:

        不同的centos系统版本自带不同的python版本,生产环境在内网并与互联网隔离,开发和生产环境python版本不一致导致三方包不能正常使用,踩了一些坑,写此方案解决此问题。

 

python环境适配:
准备:
1、和现场相同服务器版本(centos/ubuntu)
2、下载特定python版本source包(如2.7.10)
https://www.python.org/downloads/3、下载get-pip.py
https://bootstrap.pypa.io/get-pip.py
4、安装linux包环境
# yum install setuptool zlib-devel bzip2-devel openssl-devel gdbm-devel libdbi-devel ncurses-libs readline-devel sqlite-devel -y

安装指定Python版本(root用户)
1、编译特定Python版本:
# tar xf Python-2.7.10.tar.xz
# cd Python-2.7.10
# vim Modules/Setup.dist
zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz 去掉注释
# mkdir ~/share
# ./configure --prefix ~/share/python2.7.10
# make
提示bsddb185 dl imageop sunaudiodev不存在,不用管
# make install
2、配上pip
# mkdir ~/share/python2.7.10/util
将get-pip.py放在此目录下
# ln /usr/bin/pip ~/share/python2.7.10/bin/pip
# ~/share/python2.7.10/bin/python2.7 ~/share/python2.7.10/util/get-pip.py
3、测试
1、三方包安装测试
# ~/share/python2.7.10/bin/pip2.7 install spyne
# ~/share/python2.7.10/bin/python2.7
>>>import spyne
>>> spyne.__file__
'/root/share/python2.7.10/lib/python2.7/site-packages/spyne/__init__.pyc'
spyne包安装在对应~/share/python2.7.10目录下,开发时使用此方法安装所需包,部署时通过拷贝~/share/python2.7.10目录至现场直接使用此版本Python运行

2、代码与~/share/python2.7.10移植测试
移植至全新centos6.5相同系统版本可用
移植至全新centos7.5不同系统版本可用