前几天碰到一个有点尴尬的需求:我一直有个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都没有默认跑起来,还是只能自己手动干活:
yum install crond
- in /etc/rc.d/rc.local, add:
/sbin/service crond start
- crontab -e
0 */2 * * * python3 /root/test/main.py
搞定收工!!