简述

由于产品需要从裸机开始开发所以所有的配置和开发也是从零开始,这个导航是基于centos6.x版本升级默认的Centos的Python,升级到Python2.7或者Python3.3。我们不仅升级了Python,同样基于Python的setuptools, pip, virtualenv and pyvenv这些工具也同样安装和升级以便于项目需要。

安装基本的开发工具包

为了确保编译Python成功,先安装下面的这几个package和类库。

1
2
yum groupinstall "Development tools"
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

下面需要关心的两个问题:

  • Unicode 如果为了支持更多的编码字符集,可以采用UTF-32的编码能有更好的扩展性,好的扩展性是需要牺牲一部分内存。嘿嘿,所以占用的内存就比之前的多。在Python2.7.x版本支持标准是**–enable-unicode=ucs4**,在Python3.X版本中支持的标志是**–with-wide-unicode**。
  • Shared library 你或许应该编译Python作为共享库,如果没有共享库的话有些第三方工具类库,比如:mod_wsgi和Blender是无法正常工作的,所以我们需要编译成共享库。我们有两种方式编译成共享库: 1. 在编译之前就指定相应的配置命令,LDFLAGS=”-Wl,-rpath /usr/local/lib” 2. 打开**/etc/ld.so.conf**,增加**/usr/local/lib**在末尾。然后运行**/sbin/ldconfig**确保动态链接改变成功。 bash include ld.so.conf.d/*.conf /usr/local/lib
  • 使用make altinstall 预防出现问题

下载、安装和编译Python

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
# Python 2.7.6:
wget http://python.org/ftp/python/2.7.12/Python-2.7.12.tar.xz
tar xf Python-2.7.6.tar.xz
cd Python-2.7.6
./configure --prefix=/usr/local --enable-unicode=ucs4 --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"
make && make altinstall
 
# Python 3.5.2:
wget http://python.org/ftp/python/3.5.2/Python-3.5.2.tar.xz
tar xf Python-3.5.2.tar.xz
cd Python-3.5.2
./configure --prefix=/usr/local --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"
make && make altinstall

安装完成成功之后会分别在如下目录里面:/usr/local/bin/python2.7 或者 /usr/local/bin/python3.5,这样不会影响系统的默认python环境。当然你可以通过自定制你的Python为2.7,如果改变/usr/bin/python的默认python的话,请相应的修改yum源的Python。

安装Python pip、virtualenv和virtualenvwapper

安装pip

1
2
 wget https://bootstrap.pypa.io/get-pip.py
 python2.7 get-pip.py

安装virtualenv和virtualenvwapper

1
2
3
4
5
pip2.7 install virtualenv virtualenvwrapper
#.bash_profile
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/workspace
source /usr/local/bin/virtualenvwrapper.sh

并在**/etc/sudoers**设置如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin
如果你想让centos默认为python2.7可做如下设置
#1.将默认python重命名为Python2并替代Python2的软连接(Python2是Python的软连接)
 mv python python2
#2.新建默认Python2.7
ln -s /usr/local/bin/python2.7 python
#3.修改/usr/bin/yum的python解释器
nano /usr/bin/yum
修改 #!/usr/bin/python 为 #!/usr/bin/python2
#4.创建新的Python软连接
sudo ln -s /usr/local/bin/python2.7 python

到此你的所有安装已完毕并能正常使用Python。