在Centos中安装和使用Python3

前几天碰到一个有点尴尬的需求:我一直有个Bandwagon的服务器用来做SS,自己写了个Python3的脚本,想用这个服务器定时启动跑一下。结果发现Bandwagon的SS只支持Centos的系统,而Centos系统里又只默认安装了python2.6,并且SS也必须要Python2.6才能跑。
虽然Bandwagon支持更换操作系统,可选的版本也很多,但我实在懒得折腾,想想还要自己安装维护SS服务就头大,只好考虑在Centos上安装Python3了。

Install python3

不同于Ubuntu和Debian的apt-get,在Centos上的安装工具是yum,这个我没用过,但是也大同小异。首先是需要安装几个开发工具库,脚本也是网上看到的,有的是已经有了的,姑且无脑安装一下吧。

dev libs install

yum -y update
yum groupinstall -y ‘development tools’
yum install epel-release
yum install -y zlib-devel bzip2-devel openssl-devel xz-libs wget
yum clean all

你看到的是非授权版本!爬虫凶猛,请尊重知识产权!

转载请注明出处:http://conanwhf.github.io/2017/07/12/CentosPython/

访问原文「在Centos中安装和使用Python3」获取最佳阅读体验并参与讨论

Python install

然后就可以装Python了:
yum install python34
安装完成后,系统中会出现两个Python,分别在/usr/lib64/python3.4/和/usr/lib64/python2.6/。使用ls -lia /usr/bin/python*可以看到,python2 和 python3 分别指向两个不同的python版本,但python则是跟python2一样的一个binary。这也意味着我们可以使用python2和python3来分别调用两个版本的python,同时系统默认的python版本是python2.6。

Pip

安装好python后,接下来必装的就是pip了。

curl  https://bootstrap.pypa.io/get-pip.py | python3 -

安装完毕又出现一个问题,就是两个python是分开的,安装后的pip默认是直接给python安装库,所以即使安装了,也是给python2的,python3用不了。开始我采用的解决方法是修改/usr/bin/python的软链接,使系统的python版本默认为python3.4,但是这样做的结果是yum用不了(这个尚且有解)并且ss服务也启动不了了(这个不能接受)。为了避免类似的问题,我放弃了修改整个系统的python版本,而是直接改了pip所使用的python版本:
vi /usr/bin/pip,将第一行的/usr/bin/python修改为/usr/bin/python3
这样,使用pip install就是将库安装在python3了。然后可以升级一下pip:

pip install —upgrade pip

Libxml

顺便说个题外话,关于如何安装libxml。我需要安装python的xml库,但使用pip install lxml的时候报错,说系统没有xml库,安装一下即可:
yum install libxml2-dev libxslt

Crond

环境配置都完成了,终于可以把我的脚本跑起来了。这个破系统连crond都没有默认跑起来,还是只能自己手动干活:

  1. yum install crond
  2. in /etc/rc.d/rc.local, add:
    /sbin/service crond start
  3. crontab -e
    0 */2 * * * python3 /root/test/main.py

搞定收工!!