Debian安装 python 3.5.1

Debian7自带的python是2.7.3, 附带安装包中并没有最新版本,要使用最新版本必须从官网上下载编译安装。

使用 dpkg 命令可以查看所有已安装的包,可以看到没有最新python3.5.1

$ python --version     #查看当前python使用的版本

$ sudo apt-get update 
$ dpkg -l python*      # 可以看到所有python包,(没有最新的包)

基本流程:
1、下载安装包
2、解压
3、configure
4、make,make install
5、设置python3为系统默认

一、安装编译用的依赖包

$ sudo apt-get install build-essential -y
$ sudo apt-get install libncurses5-dev libncursesw5-dev libreadline6-dev -y
$ sudo apt-get install libdb5.1-dev libgdbm-dev libsqlite3-dev libssl-dev -y
$ sudo apt-get install libbz2-dev libexpat1-dev liblzma-dev zlib1g-dev -y

注: libdb5.1-dev 这个版本发现升级到了 libdb5.3-dev

二、下载压缩包

国内下载官网的速度实在是太慢,souhu 有python的镜像。 http://mirrors.sohu.com/python/3.5.1/Python-3.5.1.tgz

搜狐镜像

$ wget http://mirrors.sohu.com/python/3.5.1/Python-3.5.1.tgz

官网

$ wget --no-check-certificate https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz

下载可能会出现证书无效问题,只要安装个ca-certificates或使用--no-check-certificate下载就可以避免下面的错误。具体方法可以参考下载wget出现无效证书错误解决方法

... ...
Resolving www.python.org (www.python.org)... 103.245.222.223
Connecting to www.python.org (www.python.org)|103.245.222.223|:443... connected.
ERROR: The certificate of `www.python.org' is not trusted.
ERROR: The certificate of `www.python.org' hasn't got a known issuer.

三、编译安装

$ tar xzvf Python-3.5.1.tgz
$ cd Python-3.5.1
$ ./configure --prefix=/usr/local/python35
$ make all
$ sudo make install

提示: 这里编译使用的是 make all, 没有直接使用 makeall 参数会编译所有子模块,如sqlite3
出现: Ignoring ensurepip failure: pip 7.1.2 requires SSL/TLS
安装 sudo apt-get install libssl-dev openssl

安装完成之后,在最后的提示信息中应该可以看到下面类似的信息。。。。

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

为当前用户添加执行路径

安装好后把 python3 添加到PATH里,打开~/.bashrc 文件,在最后添加:

$ vim ~/.bashrc
添加
export PATH=$PATH:/usr/local/python35/bin

保存后:

$ source ~/.bashrc

输入 python3,可以看到现在的版本是3.5.1。

$  python3 --version            # 可以看到 Python 3.5.1

四、Python3 设置为系统默认

上面基本安装完成后,下面是把python3设置成系统默认的。这里简单把py2的命令删除,设置成py3的命令。还有中方法比较繁琐,但能方便切换版本。实际服务器中不会有切版本的情况,这里就不讨论了。

正常只要替换系统的python命令和pip这两个命令就可以了。其他如果需要可以按下方法添加即可。

$ sudo rm /usr/bin/python /usr/bin/python2
$ sudo ln -s /usr/local/python35/bin/python3.5 /usr/bin/python
$ sudo ln -s /usr/local/python35/bin/pip3 /usr/bin/pip

OK! 这样默认python变成最新的版本V:3.5.1

五、设置pip源

由于国内访问国外的网站比较慢需要找个可靠的镜像。网上比较多介绍的有个豆瓣的。

pypi.douban.com
pypi.tuna.tsinghua.edu.cn

可以直接使用:

pip install -i https://<mirror>/simple <package>

如:

pip install -i https://pypi.douban.com/simple django

这种方法当安装东西多的时候不方便。直接加到配置文件中,这样以后就不用管了。

创建一个pip.conf文件,复制到~/.pip 目录下(当前用户),如果这个文件已经存在就直接增加。

$ cat >pip.conf
[global]
index-url=https://pypi.douban.com/simple

注: 如果上面提示URL错误,把https改成http试一下。

pip版本升级

有时候pip安装时会提示你有最新版本可用。如下面的信息。

root@sunroom:/home/abc# pip install virtualenv
Requirement already satisfied (use --upgrade to upgrade): virtualenv in /usr/local/python35/lib/python3.5/site-packages
You are using pip version 7.1.2, however version 8.0.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

执行命令就可以升级,很方便。

$ sudo pip install --upgrade pip

pip安装特定版本包

正常我们会直接在install后面跟包名称使用,不会特别指定版本。

pip install <包名称>[==版本号]

如果需要安装特定版本,可以使用 ==<版本号> 这种形式。 如要安装Django 1.8 版本的。就可以用下面这种方式安装。

$ sudo pip install Django==1.8

如果pip没有安装成功

提示:

Ignoring ensurepip failure: pip 7.1.2 requires SSL/TLS

缺ssl库,执行以下命令安装

sudo apt-get install libssl-dev openssl

virtualenv 相关问题

pip install virtualenv

安装完成后,执行出现下面提示:

bash: virtualenv: command not found

没找到命令,实际已经安装了。可以使用find命令找一下。然后就直接映射到执行目录方便使用。

$ sudo find / -name virtualenv

一般会找到下面的目录,就是编译安装的目录。

/usr/local/python35/bin/virtualenv

映射一下方便使用,或直接放到搜索目录也行。

$ sudo ln -s /usr/local/python35/bin/virtualenv /usr/bin/virtualenv