系统环境 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的时候会输出丢失的模块。