之前利用wxpy包写了一个定时发送每日一句给朋友,无奈当时没有服务器,所以每天都要自己运行下脚本进行,今天找到了公司的一个空闲服务器(python版本是3.6.6),所以就先安装了Python3.6.7,然后把python代码部署了上去。
1.工具准备:
Putty
SSH Secure Shell Client
2. 安装依赖环境(若已安装则可跳过)
查看linux版本
cat /proc/version
Linux version 2.6.32-642.el6.x86_64 (mockbuild@worker1.bsys.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC) ) #1 SMP Tue May 10 17:27:01 UTC 2016
然后安装依赖环境(可选)
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
3.下载Python3
地址:https://www.python.org/downloads/
wget https://www.python.org/ftp/python/3.6.7/Python-3.6.7.tgz
4.安装python3
我个人习惯安装在/usr/local/python3(具体安装位置看个人喜好)
创建目录:mkdir -p /usr/local/python3
解压下载好的Python-3.x.x.tgz包(具体包名因你下载的Python具体版本不不同⽽而不不同,如:我下载的是Python3.6.7.那我这里就是Python-3.6.7.tgz)
解压命令:
tar -zxvf Python-3.6.7.tgz
5.进入解压后的目录,编译安装。
cd Python-3.6.7
./configure --prefix=/usr/local/python3
make( make实际上编译你的源代码,并生成执行文件。)
make
make install (make install实际上是把生成的执行文件拷贝到 linux系统中必要的目录下,比如拷贝到 /usr/local/bin 目录下,这样所有 user就都能运行这个程序了。)
make install 或者 make && make install
到这里Python 就算安装完成了。需要说的是,其实其他的 linux软件安装也是大同小异的,基本都需要走 configure>make>make install这么一个过程。
6.建立python3的软链
安装完之后,我们执行python命令,你会发现默认的 python命令仍旧是指向旧的版本 2.6.6
# which python
/usr/local/bin/python
因此需要建立python3的软链:
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
7.并将/usr/local/python3/bin加入PATH
# vim ~/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin:/usr/local/python3/bin
export PATH
按ESC,输入:wq回车退出。
修改完记得执行行下面的命令,让上一步的修改生效:
# source ~/.bash_profile
检查Python3及pip3是否正常可用:
# python3 -V
Python 3.6.7
# pip3 -V
pip 10.0.1 from /usr/local/python3/lib/python3.6/site-packages (python 3.6)
部署Python文件
文件源代码:
from __future__ import unicode_literals
from threading import Timer
from wxpy import *
import requests
#bot = Bot()
bot = Bot(console_qr=2,cache_path="botoo.pkl")
#这里的二维码是用像素的形式打印出来!,如果你在win环境上运行,替换为bot=Bot()
def get_news1():
#获取金山词霸每日一句,英文和翻译
url = "http://open.iciba.com/dsapi/"
r = requests.get(url)
tts =r.json()['tts']
contents = r.json()['content']
translation= r.json()['translation']
return tts,contents,translation
def send_news():
try:
my_friend = bot.friends().search(u'朋友微信名称')
#替换为你朋友的微信名称,不是备注,也不是微信帐号。
mf=ensure_one(my_friend)
my_group=bot.groups().search(u'群组名称',[mf])
#替换群组名称,根据好友查询群组
news=get_news1()
mf.send(news[0])
mf.send(news[1])
mf.send(news[2][5:])
mf.send(u"来自朋友的每日一句!")
my_group[0].send(news[1])
my_group[0].send(news[2][5:])
my_group[0].send(u"来自朋友的每日一句!")
t = Timer(86400, send_news)
#每86400秒(1天),发送1次,不用linux的定时任务是因为每次登陆都需要扫描二维码登陆,很麻烦的一件事,就让他一直挂着吧
t.start()
except:
my_friend = bot.friends().search('你的微信名称')[0]#你的微信名称,不是微信帐号。
my_friend.send(u"今天消息发送失败了,消息为:"+news[1])
if __name__ == "__main__":
send_news()