环境:
CentOS 6.5 (Redhat 6.5还待测试)
从github (https://github.com/yyuu/pyenv) 下载pyenv,然后解压
环境变量配置:
export PYENV_ROOT="$HOME/pyenv-master"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
然后通过pyenv install 可以安装不同版本的python,考虑到很多生成环境是没有外网条件,可以通过以下方法配置本地镜像源,实现离线安装:
首先,需要下载你需要版本的python安装包,以2.7.12为例:
wget https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tar.xz
需要修改文件名为 sha64位码,可以借用以下方法(从别人那cp的)计算:
#!/usr/bin/evn python
# -*- coding:utf-8 -*-
import os
import hashlib
import sys
def get_hash(filepath):
if not os.path.exists(filepath):
print('File not exists.')
return
# algo = hashlib.md5()
algo = hashlib.sha256()
with open(filepath, 'rb') as f:
while True:
data = f.read(4096)
if not data:
break
algo.update(data)
return algo.hexdigest()
if __name__ == '__main__':
md5sum = get_hash('Python-2.7.12.tar.xz')
print(md5sum)
然后在python 包所在目录下启动一个http服务器:
python2 -m SimpleHTTPServer
接着,让pyenv直接pull该地址上的安装包:
export PYTHON_BUILD_MIRROR_URL="localhost:8000"
执行 pyenv install 2.7.12
完成安装后,通过 pyenv versions 可以看见当前拥有的python版本。
有时候会出现编译错误,可以一般是一些依赖包没有装,例如 readline ,readline-devel 等等。
Under Ubuntu, depended packages have different name, such as:
bzip2 lib => libbz2-dev
SQLite3 lib => libsqlite3-dev
OpenSSL lib => libssl-dev
libffi-dev
检查python 版本
确认版本无误。