系统环境 ubuntu12.04(32bit)


默认系统已经自带了python2.7。在安装python3.5的时候,不要将python2.7的版本删掉,因为系统本身有很多功能都是需要python2.7的支持。可以通过vitrualenv工具,给不同python版本做环境隔离,应该就可以让不同版本的python共存了。其实,在安装python3.5的时候,注意配置一下安装路径,重新建立软链接就能很好地区分python2.7和3.5了,不需要用到vitrualenv。


本文主要记录了,在安装python3.5,pip和setuptools遇到的问题及解决方法。


安装python3.5:

登录python的官网: https//www.python.org/ 找到linux适用的source release版本。

我使用的是:

$ cd /usr/local/src
$ wget  https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tar.xz  #python3.5.1版本 
$ xz -d Python-3.5.1.tar.xz  #解压
$ tar xvf Python-3.5.1.tar  #解压
$ cd Pyton-3.5.1
$ sudo mkdir /usr/local/python3
$ sudo chmod 777 /usr/local/python3/
$ ./configure --prefix=/usr/local/python3  #配置python3.5安装路径
$ sudo make   #编译
$ sudo make install #安装

在make编译时要注意最后打印的消息,可能会是像这样的信息:

Python build finished successfully!
The necessary bits to build these optional modules were not found: 
_bz2       _curses         _curses_panel      _dbm         _gdbm  
_lzma       _sqlite3   _ssl      _tkinter     readline     zlib   
                                   
To find the necessary bits, look in setup.py in detect_modules() for the module's name.


其中,编译结束时如果提示缺少zlib和_ssl,这会对后面安装pip3和setuptools有影响。所以,需要把他们都安装上。


安装zlib:

$ sudo apt-get install --reinstall zlibc zlib1g zlib1g-dev


安装_ssl:

$ sudo apt-get install libssl-dev


然后重新make, make install.


这次应该能成功安装了,最后输出的信息为:

Collecting setuptools 
Collecting pip 
Installing collected packages: setuptools, pip 
Successfully installed pip-7.1.2 setuptools-18.2


现在要做的就是给python3.5 和它对应的pip版本做一个软链接了,和python2.7版本的区分。

$ cd  /usr/bin
$ sudo ln -s /usr/local/python3/bin/python /usr/bin/python3  #名字个人喜欢
$ sudo ln -s /usr/local/python3/bin/pip /usr/bin/pip3
$ python3  --version  #查看版本
$ pip3   --version  #看到输出路径来自python3.5的就对了



补充:

在python(>=3.4)版本开始,pip和setuptools默认会安装的,如果在安装过程中python的安装环境不正确,可能就会导致pip和setuptools安装失败。例如在make的时候会输出丢失的模块。