- A+
Debian7自带的python是2.7.3, 附带安装包中并没有最新版本,要使用最新版本必须从官网上下载编译安装。
使用 dpkg 命令可以查看所有已安装的包,可以看到没有最新python3.5.1
python --version #查看当前python使用的版本 apt-get update dpkg -l python* # 可以看到所有python包,(没有最新的包)
基本流程:
1、下载安装包
2、解压
3、configure
4、make,make install
5、设置python3为系统默认
一、安装编译用的依赖包
apt-get install build-essential -y apt-get install libncurses5-dev libncursesw5-dev libreadline6-dev -y apt-get install libdb5.1-dev libgdbm-dev libsqlite3-dev libssl-dev -y 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下载就可以避免下面的错误。
三、编译安装
tar xzvf Python-3.5.1.tgz cd Python-3.5.1 ./configure --prefix=/usr/local/python35 make all sudo make install
提示: 这里编译使用的是 make all, 没有直接使用 make。all 参数会编译所有子模块,如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 --version,可以看到现在的版本是3.5.1。
四、Python3 设置为系统默认
上面基本安装完成后,下面是把python3设置成系统默认的。这里简单把py2的命令删除,设置成py3的命令。还有中方法比较繁琐,但能方便切换版本。实际服务器中不会有切版本的情况,这里就不讨论了。
正常只要替换系统的python命令和pip这两个命令就可以了。其他如果需要可以按下方法添加即可。
rm /usr/bin/python /usr/bin/python2 ln -s /usr/local/python35/bin/python3.5 /usr/bin/python ln -s /usr/local/python35/bin/pip3 /usr/bin/pip
五、设置pip源
由于国内访问国外的网站比较慢需要找个可靠的镜像。网上比较多介绍的有个豆瓣的。
pypi.douban.com
pypi.tuna.tsinghua.edu.cn
可以直接使用:
pip install -i https:///simple
如:
pip install -i https://pypi.douban.com/simple cymysql
这种方法当安装东西多的时候不方便。直接加到配置文件中,这样以后就不用管了。
创建一个pip.conf文件,复制到~/.pip 目录下(当前用户),如果这个文件已经存在就直接增加。
cat >pip.conf
[global]
index-url=https://pypi.douban.com/simple
注: 如果上面提示URL错误,把https改成http试一下。
pip版本升级
有时候pip安装时会提示你有最新版本可用。如下面的信息。
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.
执行命令就可以升级,很方便。pip install --upgrade pip
pip安装特定版本包
pip install <包名称>[==版本号]
如果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命令找一下。然后就直接映射到执行目录方便使用。
find / -name virtualenv
一般会找到下面的目录,就是编译安装的目录。
/usr/local/python35/bin/virtualenv
映射一下方便使用,或直接放到搜索目录也行。
ln -s /usr/local/python35/bin/virtualenv /usr/bin/virtualenv
本文参考自:http://www.moguf.com/post/setuppython3
2018年1月1日 下午2:51 沙发
Warning: Use of undefined constant auto - assumed 'auto' (this will throw an Error in a future version of PHP) in /www/wwwroot/past.cmsky.org/wp-content/themes/begin5.2/inc/inc.php on line 911
这个厉害了,就是看着有点麻烦。
2018年1月2日 下午2:55 1层
Warning: Use of undefined constant auto - assumed 'auto' (this will throw an Error in a future version of PHP) in /www/wwwroot/past.cmsky.org/wp-content/themes/begin5.2/inc/inc.php on line 911
@灰常记忆 我是为了运行一个脚本才升级了一台vps的python版本。