之前利用wxpy包寫了一個(gè)定時(shí)發(fā)送每日一句給朋友,無奈當(dāng)時(shí)沒有服務(wù)器页衙,所以每天都要自己運(yùn)行下腳本進(jìn)行,今天找到了公司的一個(gè)空閑服務(wù)器(python版本是3.6.6)爹凹,所以就先安裝了Python3.6.7竖般,然后把python代碼部署了上去零酪。
1.工具準(zhǔn)備:
Putty
SSH Secure Shell Client
2. 安裝依賴環(huán)境(若已安裝則可跳過)
查看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
然后安裝依賴環(huán)境(可選)
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
我個(gè)人習(xí)慣安裝在/usr/local/python3(具體安裝位置看個(gè)人喜好)
創(chuàng)建目錄: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.進(jìn)入解壓后的目錄驮肉,編譯安裝熏矿。
cd Python-3.6.7
./configure --prefix=/usr/local/python3
make( make實(shí)際上編譯你的源代碼,并生成執(zhí)行文件。)
make
make install (make install實(shí)際上是把生成的執(zhí)行文件拷貝到 linux系統(tǒng)中必要的目錄下票编,比如拷貝到 /usr/local/bin 目錄下褪储,這樣所有 user就都能運(yùn)行這個(gè)程序了。)
make install 或者 make && make install
到這里Python 就算安裝完成了慧域。需要說的是鲤竹,其實(shí)其他的 linux軟件安裝也是大同小異的,基本都需要走 configure>make>make install這么一個(gè)過程昔榴。
6.建立python3的軟鏈
安裝完之后辛藻,我們執(zhí)行python命令,你會(huì)發(fā)現(xiàn)默認(rèn)的 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回車退出吱肌。
修改完記得執(zhí)行行下面的命令,讓上一步的修改生效:
# 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環(huán)境上運(yùn)行,替換為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'朋友微信名稱')
#替換為你朋友的微信名稱规揪,不是備注,也不是微信帳號(hào)折联。
mf=ensure_one(my_friend)
my_group=bot.groups().search(u'群組名稱',[mf])
#替換群組名稱粒褒,根據(jù)好友查詢?nèi)航M
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天),發(fā)送1次祥款,不用linux的定時(shí)任務(wù)是因?yàn)槊看蔚顷懚夹枰獟呙瓒S碼登陸清笨,很麻煩的一件事,就讓他一直掛著吧
t.start()
except:
my_friend = bot.friends().search('你的微信名稱')[0]#你的微信名稱刃跛,不是微信帳號(hào)抠艾。
my_friend.send(u"今天消息發(fā)送失敗了,消息為:"+news[1])
if __name__ == "__main__":
send_news()