CentOS 6.X 自带的python版本是 2.6 , 由于工作需要,很多时候需要2.7版本。所以需要进行版本升级。由于一些系统工具和服务是对 Python 有依赖的,所以升级 Python 版本需要注意。


升级步骤

如何欢乐的,没有痛苦的升级python版本 ,往下看 …

更新系统和开发工具集
更新指令
[root@localhost ~]# yum -y update
[root@localhost ~]# yum groupinstall -y 'development tools'

另外还需要安装 python 工具需要的额外软件包 SSL, bz2, zlib
[root@localhost ~]# yum install -y zlib-devel bzip2-devel openssl-devel xz-libs wget

源码安装Python 2.7.x
[root@localhost ~]# wget http://www.python.org/ftp/python/2.7.8/Python-2.7.8.tar.xz
[root@localhost ~]# xz -d Python-2.7.8.tar.xz
[root@localhost ~]# tar -xvf Python-2.7.8.tar

安装详情:
# 进入目录:
[root@localhost ~]# cd Python-2.7.8

# 运行配置 configure:    加上--enable-shared 以后需要用到libpython 库
[root@localhost ~]# ./configure --enable-shared --prefix=/usr/local

# 编译安装:
[root@localhost ~]# make 
[root@localhost ~]# make altinstall

# 检查 Python 版本:
[root@localhost ~]# python2.7 -V
Python 2.7.8
[root@localhost Python-2.7.8]# python2.7 -V
python2.7: error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory
[root@localhost Python-2.7.8]# find /|grep libpython2.7.so.1.0
/opt/Python-2.7.8/libpython2.7.so.1.0
/usr/local/lib/libpython2.7.so.1.0
[root@localhost Python-2.7.8]# cp -a libpython2.7.so.1.0 /usr/lib/
[root@localhost Python-2.7.8]# python2.7 -V
python2.7: error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory
[root@localhost Python-2.7.8]# ldconfig
[root@localhost Python-2.7.8]# python2.7 -V
Python 2.7.8
[root@localhost Python-2.7.8]#
设置 PATH

为了我们能够方便的使用Python,我们需要设置系统变量或者建立 软连接将新版本的 Python
加入到 path 对应的目录 :

[root@localhost ~]# export PATH="/usr/local/bin:$PATH"
or 
[root@localhost ~]# ln -s /usr/local/bin/python2.7  /usr/bin/python

# 检查
[root@localhost ~]# python -V
Python 2.7.8
[root@localhost ~]# which python
/usr/bin/python

安装 setuptools

#获取软件包
[root@localhost ~]# wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz 

#解压:
[root@localhost ~]# tar -xvf setuptools-1.4.2.tar.gz
[root@localhost ~]# cd setuptools-1.4.2

# 使用 Python 2.7.8 安装 setuptools
[root@localhost ~]# python2.7 setup.py install

安装 PIP

[root@localhost ~]# curl --insecure https://bootstrap.pypa.io/get-pip.py | python2.7 -

修复 yum 工具

此时yum应该是失效的,因为此时默认python版本已经是2.7了。而yum需要的是2.6 所以:

[root@localhost ~]# which yum
/usr/bin/yum
[root@localhost ~]# vi /usr/bin/yum
#!/usr/bin/python2.6
……

将第一行 #!/usr/bin/python 改为 #!/usr/bin/python2.6此时yum就ok啦


安装ipython
  1. yum 安装
[root@localhost ~]# yum install ipython -y
  1. pip install ipython #前提你有安装setuptools才有pip
[root@localhost ~]# pip install ipython
[root@localhost ~]# ipython
/usr/local/lib/python2.7/site-packages/IPython/frontend.py:21: ShimWarning: The top-level `frontend` package has been deprecated. All its subpackages have been moved to the top `IPython` level.
  "All its subpackages have been moved to the top `IPython` level.", ShimWarning)
/usr/local/lib/python2.7/site-packages/IPython/core/history.py:228: UserWarning: IPython History requires SQLite, your history will not be saved
  warn("IPython History requires SQLite, your history will not be saved")
Python 2.7.8 (default, Oct 18 2016, 10:37:37) 
Type "copyright", "credits" or "license" for more information.

IPython 5.1.0 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: print ( "hello word!" )
hello word!
扩展python模块
pip install requests  
pip install Flask
pip install fabric
pip install psutil
pip install IPy
pip install dnspython
pip install MySQL-python
    #1. yum install mysql-devel.x86_64
    #2. pip install mysql-python

python数据库安装时错误解决办法:

[root@localhost opt]# pip install mysql-python
Collecting mysql-python
  Using cached MySQL-python-1.2.5.zip
    Complete output from command python setup.py egg_info:
    sh: mysql_config: command not found
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-build-o53eKA/mysql-python/setup.py", line 17, in <module>
        metadata, options = get_config()
      File "setup_posix.py", line 43, in get_config
        libs = mysql_config("libs_r")
      File "setup_posix.py", line 25, in mysql_config
        raise EnvironmentError("%s not found" % (mysql_config.path,))
    EnvironmentError: mysql_config not found
    
    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-o53eKA/mysql-python/

[root@localhost opt]# yum install mysql-devel.x86_64
[root@localhost opt]# pip install mysql-python
Collecting mysql-python
  Using cached MySQL-python-1.2.5.zip
Building wheels for collected packages: mysql-python
  Running setup.py bdist_wheel for mysql-python ... done
  Stored in directory: /root/.cache/pip/wheels/38/a3/89/ec87e092cfb38450fc91a62562055231deb0049a029054dc62
Successfully built mysql-python
Installing collected packages: mysql-python
Successfully installed mysql-python-1.2.5
[root@localhost opt]# ipython
Python 2.7.8 (default, Oct  4 2016, 17:31:33) 
Type "copyright", "credits" or "license" for more information.

IPython 5.1.0 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: import MySQLdb