如何在CentOS 6上安装Python 2.7和Python 3.4

在最新的CentOS release 6.6 (Final)(截至于2014年11月30日是最新)系统上默认自带的Python是2.6.6版本,可能是出于安全的原因,导致现有发行版本Python严重落后。在使用部分应用时,会有更高版本需求。这里特别需要注意的是由于多个关键的系统应用依赖于自带python,如果替换系统的python环境可能会导致很多难以预见的错误,比如yum等。本文讲述如何在CentOS上使用新路径(/usr/local)安装最新版本的Python。

本文即讲述如何在CentOS 6上安装Python 2.7和Python 3.4:

0、安装前预准备
#安装gcc
yum install gcc gcc-c++ xz openssl*
1、查看版本
# python -V
Python 2.6.6
2、下载解压
#Python 2.7.8
wget --no-check-certificate  https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz
tar -zxvf Python-2.7.8.tgz 
cd Python-2.7.8

#Python 3.4.2
wget --no-check-certificate  https://www.python.org/ftp/python/3.4.2/Python-3.4.2.tgz
tar -zxvf Python-3.4.2.tgz
cd Python-3.4.2
 3、修改setup.dist, 增加ssl支持
cd Python2.7.8/Moudle
vi Setup.dist
# Socket module helper for SSL support; you must comment out the other
# socket line above, and possibly edit the SSL variable:
SSL=/usr/local/ssl
_ssl _ssl.c \
-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
-L$(SSL)/lib -lssl -lcrypto

4、编译安装:

./configure --prefix=/usr/local/
make && make altinstall

由于多个关键的系统应用依赖于自带python,不建议修改默认python

ln -sf /usr/local/bin/python2.7 /usr/bin/python2.7
ln -sf /usr/local/bin/python3.4 /usr/bin/python3.4
验证:
# which python2.7
/usr/local/bin/python2.7

# which python3.4
/usr/local/bin/python3.4

# python2.7 -V
Python 2.7.8
# python3.4 -V
Python 3.4.2

5、修改系统路径(可选)
编译安装完成后,要替换掉系统自带的Python,但CentOS的yum依赖于Python工作,为了保证yum的正常运行,在替换前,先将自带的Python更名备份,方法如下:

mv /usr/bin/python /usr/bin/python2.6
ln -s /usr/local/bin/python2.7 /usr/bin/python

验证:

python -V
/usr/bin/python2.6 -V

6、已知影响
修改yum的python版本

vi /usr/bin/yum
#!/usr/bin/python2.6

安装过程中的哪些报错:


编译报错:

./Modules/_ssl.c:1840: error: ‘SSLEAY_VERSION’ undeclared (first use in this function)
make: *** [Modules/_ssl.o] Error 1

解决办法:

yum install openssl*

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据