摘要: Linux Python详细安装、升级指南,列出了几乎所有可能遇到的错误

Linux机器一般自带Python都是较低版本,下面我们讨论一下升级Python【示例中使用的是阿里云的CentOS】

首先下载源tar包

可利用linux自带下载工具wget下载【如果没有wget可以直接下载该文件后上传到服务器或安装wget(见附录)支持】,如下所示:

wget https://www.python.org/ftp/python/2.7.11/Python-2.7.11.tgz

下载完成后到下载目录下,解压

tar -zxvf Python-2.7.11.tgz

进入解压缩后的文件夹

cd Python-2.7.11

在编译前先在/usr/local建一个文件夹python27(作为Python的安装路径,以免覆盖老的版本)

mkdir /usr/local/python27

在解压缩后的目录下编译安装

./configure --prefix=/usr/local/python27makemake install

此时没有覆盖老版本,再将原来/usr/bin/python链接改为别的名字

mv /usr/bin/python /usr/bin/python_old

再建立新版本python的链接

ln -s /usr/local/python27/bin/python2.7 /usr/bin/python

这个时候输入,验证是否配置成功

python -V

成功就会显示出python的新版本信息

Python 2.7.11

安装 pip软件包

  1. 下载 pip 包

wget https://pypi.python.org/packages/source/p/pip/pip-8.1.1.tar.gz
  1. 解压下载的包

tar -zxvf Python-2.7.11.tgz
  1. 安装 pip

python setup.py install

如果出下面的错误:

    Traceback (most recent call last):      File "setup.py", line 5, in 
        from setuptools import setup, find_packages    ImportError: No module named setuptools

原因是:安装pip时提示setup.py中使用setuptools中的模块,但是电脑中并没有安装setuptools软件包,所以我们需要先下载并安装 setuptools!

  1. 安装setuptools软件包

可以先打开setuptools的python官网看看setuptools软件包如何安装:

wget --no-check-certificate https://bootstrap.pypa.io/ez_setup.pypython ez_setup.py --insecure

也可以下载setuptools软件包后安装:

(1)下载setuptools包

wget http://pypi.python.org/packages/source/s/setuptools/setuptools-2.0.tar.gz

(2)解压setuptools包

tar zxvf setuptools-2.0.tar.gzcd setuptools-2.0

(3)编译setuptools

python setup.py build

(4)开始执行setuptools安装

python setup.py install

如果出现urllib2.URLError:<urlopen error unknown url type: https>

python 出现'module' object has no attribute 'HTTPSHandler'错误,是因为你编译python的时候没有把ssl模块编译进去。

  1. 安装SSL模块

yum install mod_ssl

如果此时报错yum找不到,就是因为yum依赖的是2.6及以下的python,所以需要做以下处理:

vim /usr/bin/yum

把下面的部分

#!/usr/bin/python

修改为:

#!/usr/bin/python2.6

就可以运行上面安装SSL的命令了,之后重新编译安装python,并把ssl模块包含进去就可以了

因为编译 python 的时候没有把 ssl模块 编译进去,只需修改 Modules/Setup文件 重新编译安装即可。

进入python安装包,找到Setup文件,用 vi 打开

  1. cd Python-2.7.11/Modules

  1. vi Setup.dist

找到

  1. # Socket module helper for SSL support; you must comment out the other

  1. # socket line above, and possibly edit the SSL variable:

  1. #SSL=/usr/local/ssl#_ssl _ssl.c \

  1. #       -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \

  1. #       -L$(SSL)/lib -lssl -lcrypto

把前面的 # 号去掉,修改为

  1. # Socket module helper for SSL support; you must comment out the other

  1. # socket line above, and possibly edit the SSL variable:

  1. SSL=/usr/local/ssl

  1. _ssl _ssl.c \

  1.        -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \       -L$(SSL)/lib -lssl -lcrypto

保存退出,

【需要重新执行之前安装python的步骤】。 然后再安装pip的步骤,就可以成功安装pip了。

附录:

wget安装:wget的下载与安装: 下载地址:ftp://ftp.cs.cuhk.edu.hk/pub/gnu/gnu/wget 安装:先把wget下载到的tar文件解压,然后cd到wget目录下

./configuremakemake installmake clean

简单使用:wget url(要下载的地址)

本文出自https://my.oschina.net/coderknock/blog/702373