上次弄了個(gè)機(jī)器人,反響挺不錯(cuò)的,我也挺滿意的,因?yàn)檫@個(gè)我也初步了解了服務(wù)器這個(gè)東西,懂得了如何將自己的腳本代碼放到服務(wù)器上運(yùn)行了,媽媽再也不怕我每天都得開著電腦才能運(yùn)行腳本了,不過說實(shí)話,這個(gè)服務(wù)器真貴,不過有阿里云學(xué)生機(jī),想嘗試了解下的可以去試試,非常建議去折騰下,可以學(xué)到的東西很多。
當(dāng)時(shí)為了將代碼放到服務(wù)器上運(yùn)行,也花了很多時(shí)間,所以避免還有不會(huì)的小白同學(xué),記錄下此過程,讓他們少走點(diǎn)坑。
1. 購買服務(wù)器
如果你是學(xué)生的話,想折騰的可以去阿里云那里購買,因?yàn)橛袑W(xué)生機(jī)優(yōu)惠,只需要9.9一個(gè)月,但是只能購買一次,在下一次購買需要做任務(wù)才可以繼續(xù)享用學(xué)生機(jī)優(yōu)惠。如果你是土豪的話,可以直接忽略這個(gè)。
因?yàn)檫@次我只需要把機(jī)器人腳本運(yùn)行就可以了,所以直接選擇學(xué)生機(jī)的配置就夠用了。
阿里云的學(xué)生機(jī)購買鏈接:
https://promotion.aliyun.com/ntms/act/campus2018.html?spm=5176.10695662.1244717.1.605c4804V5gfhs
點(diǎn)擊購買即可。
這個(gè)密碼是你登陸上服務(wù)器的密碼,需要記住,登陸用戶名就是root。
接下來就是掃碼支付了。
購買了點(diǎn)擊阿里云控制臺(tái),點(diǎn)擊云服務(wù)器ECS,就可以看到你剛才購買的服務(wù)器了。
再點(diǎn)擊下面的云服務(wù)器,你就可以看到這個(gè)服務(wù)器的相關(guān)配置了
連接服務(wù)器可以在這個(gè)頁面的右邊的遠(yuǎn)程連接進(jìn)行連接,這個(gè)第一次點(diǎn)進(jìn)去會(huì)有個(gè)遠(yuǎn)程連接密碼,需要記住,因?yàn)槊看卧谶@里進(jìn)行遠(yuǎn)程連接的時(shí)候都需要填入這個(gè)密碼。
連接成功就會(huì)顯示一個(gè)黑色框,這里連接服務(wù)器雖然可以,但是不太方便,這里推薦大家一個(gè)在 window 的免費(fèi) ssh 連接工具putty
2. 在服務(wù)器上配置 Python 環(huán)境
需要在服務(wù)器上運(yùn)行 Python 腳本 ,就必須要在服務(wù)器上有 Python 的環(huán)境,在阿里云購買的學(xué)生機(jī)默認(rèn)就裝有 Python 的,不過版本是 2.7.5。這里我們重新安裝 Python3,是這個(gè)服務(wù)器上可以多個(gè)版本共存。
先在 putty 上連接我們的服務(wù)器。
上面的 ip 地址就是我們購買的服務(wù)器的共有ip地址,使用 ssh連接就行了。不過還得設(shè)置一個(gè)東西,不設(shè)置的話,如果超過一段時(shí)間不動(dòng)終端的話,就會(huì)自動(dòng)斷開,又得重新連接。
這里設(shè)置成 60 秒就可以了,原理我現(xiàn)在不太記得了,如果有讀者知道的話,可以在留言區(qū)說下。
點(diǎn)擊 open,然后填寫用戶名 root 和自己之前設(shè)置的密碼即可登陸成功,如上圖。
接下來就是開始安裝我們的 Python3 環(huán)境了。
先查看下 centos 服務(wù)器的已安裝的 Python 版本
python -V
我這里是 3.6.8 版本,因?yàn)槲抑匦屡渲昧耍绻愕谝淮问褂茫@個(gè)結(jié)果是 python 2.7.5
查看 python 可執(zhí)行文件的路徑
可以看到所在的目錄,進(jìn)入這個(gè) bin 目錄,并查看 python 文件
可以看到我這里的 python 指向了 python3 這個(gè)文件,但是你們第一次的會(huì)指向 python2.7 這個(gè)文件,接下來就是將 python 這個(gè)軟連接指向 python3 就行了。如果怕弄壞的,想備份原來 python2 的文件可以執(zhí)行mv python2.7 python.bak就可以將文件備份到當(dāng)前目錄了。
安裝 python3.6.8 版本
1)先安裝相關(guān)包
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
需要需要確認(rèn)時(shí)直接輸入 y 即可
2)下載 python 3.6.8 源碼包
如果覺得下載網(wǎng)速有點(diǎn)慢的話,可以更換阿里云源,可以參考這個(gè)連接:https://blog.csdn.net/qq_37274323/article/details/81107958
下載 python 3.6.8 包
https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tar.xz
解壓 python 3.6.8 源碼包
tarxfPython-3.6.8.tar.xz-C/usr/local/src/
這個(gè)是將 python 源碼包解壓到文件夾 /usr/local/src 內(nèi),這里你也可以自己指定解壓目錄,你自己記得解壓位置即可。
安裝 python3
./configure --prefix=/usr/local/python3
這里的地址需要指定為自己的 python 源碼包解壓地址。
編譯
make && make install
這時(shí)候可以說安裝 python3 成功了,我們可以使用這個(gè)命令查看
/usr/local/python3/bin/pip3 list
更新 pip 版本
/usr/local/python3/bin/pip3 install --upgrade pip
也可以查看一下是否更新成功
/usr/local/python3/bin/pip3 list
3)建立軟連接
現(xiàn)在就是需要將 python3 這個(gè)文件建立軟連接,使 python 指向 python3 即可。
ln -s /usr/local/python3/bin/python3 /usr/bin/python
執(zhí)行之后查看 python 版本
python -V
成功之后就會(huì)看到 python 指向了 python 3.6.8 版本,如果出錯(cuò)了
bash:python:commandnotfound...
這個(gè)是你建立軟連出問題了,可能指定的 python3 安裝路徑不正確,這時(shí)候?qū)?python 這個(gè)軟連接刪除重新創(chuàng)建即可。
你可以進(jìn)入 。/usr/bin 目錄,查看是否創(chuàng)建軟連接成功
若找到 python 這個(gè)指向?yàn)榧t色顯示的,證明創(chuàng)建錯(cuò)誤了,python3 的地址錯(cuò)誤了。
這時(shí)就刪除這個(gè) python 軟連接
再重新創(chuàng)建 python 軟連接即可
ln -s /usr/local/python3/bin/python3 /usr/bin/python
這前面的地址就是 python3 的安裝路徑,就是有 python3 這個(gè)文件的目錄。
4)修改 yum 配置
因?yàn)?yum 原來是使用 python2 的,改了 python3 之后可能會(huì)出錯(cuò),所以需要重新配置。
修改 yum 文件
vi /usr/bin/yum
把文件頭部的#!/usr/bin/python改成#!/usr/bin/python2.7保存,然后按esc,輸入 :wq 退出即可
修改 urlgrabber-ext-down 文件
vi /usr/libexec/urlgrabber-ext-down
第一行改為#!/usr/bin/python2.7,然后按esc,輸入 :wq 退出即可
現(xiàn)在就完成了 python 環(huán)境的配置了。
3. 下載相關(guān)庫
為了方便管理,我這里使用了虛擬環(huán)境,防止每個(gè)腳本運(yùn)行時(shí)所需要的庫進(jìn)行沖突,如果你暫時(shí)沒有想那么復(fù)雜,只是想運(yùn)行一次腳本而已,也可以不必要使用虛擬環(huán)境,不過還是建議使用虛擬環(huán)境的,畢竟始終都需要用到的。
1)下載 virtualenv 庫
這個(gè)是創(chuàng)建 虛擬環(huán)境使用的庫。
pip3 install virtualenv
注意:這里使用的是 pip3,若是直接使用 pip 則對(duì)應(yīng)的是 python2 版本的。
2)下載 virtualenvwrapper-win 庫
這個(gè)庫是為了方便管理虛擬環(huán)境使用的
pip3 install virtualenvwrapper-win
下載完了還需要配置環(huán)境變量
vim~/.bashrc
在末尾添加上這兩句
exportWORK_HOME=$HOME/.virtualenvssource /usr/local/python3/bin/virtualenvwrapper.sh
第一句是固定的,第二句為指定 virtualenvwrapper 安裝的路徑
激活配置
source ~/.bashrc
然后進(jìn)入你想創(chuàng)建虛擬環(huán)境的路徑,輸入以下命令
mkvirtualenv py3_test
創(chuàng)建成功之后會(huì)自動(dòng)進(jìn)入該虛擬環(huán)境
但是這里默認(rèn)使用的是 python2 版本指定的虛擬環(huán)境,需要使用 python3 版本可以指定版本創(chuàng)建
指定 python 版本創(chuàng)建虛擬環(huán)境
mkvirtualenv py3 --python=python
上面使用 --python 參數(shù)來指定 python 版本,因?yàn)?python 這個(gè)文件是指向 python3 的,所以可以這樣使用,當(dāng)然你也可以填上你 python3 版本的位置,這時(shí)虛擬環(huán)境的 python 版本就是 3 了。
3. 下載機(jī)器人相關(guān)庫
這里就是在虛擬環(huán)境中使用 pip3 安裝 itchat 和 requests 庫(用于爬蟲獲取早報(bào))即可
4. 上傳腳本到服務(wù)器
由于服務(wù)器上原本就帶有 ftp 服務(wù)器的,所以我們只需要在本地安裝個(gè)fileZilla 客戶端進(jìn)行連接即可,自己去官網(wǎng)下載即可。
這里填上自己的服務(wù)器 ip 地址和連接賬號(hào)和密碼 ,點(diǎn)擊連接即可
連接成功之后,左邊就是我們服務(wù)器上面的文件了,右邊就是本地文件,右擊需要上傳的文件選擇上傳即可。上傳成功之后即可在服務(wù)器上看到相關(guān)文件。
接下來就是運(yùn)行腳本了。
5. 在服務(wù)器上運(yùn)行腳本
可以直接像在本地一樣運(yùn)行腳本
python robot.py
這樣就可以 運(yùn)行成功了,但是我們?cè)陉P(guān)閉連接之后,這個(gè)腳本就停止了,那豈不是還是需要開著電腦掛機(jī)?
別急,我們可以在后臺(tái)運(yùn)行腳本啊,這樣即使關(guān)閉連接,也一樣在運(yùn)行。使用命令如下:
nohuppythonrobot.py
這時(shí)你可以查看進(jìn)程
ps -ef | grep python
就會(huì)看到我們剛才 robot 代碼已經(jīng)運(yùn)行起來了,這個(gè)就是在后臺(tái)運(yùn)行,關(guān)閉連接之后一樣會(huì)運(yùn)行,這下就放心了。
但是,如果發(fā)生錯(cuò)誤的話,我們是無法知道哪里出錯(cuò)的,這時(shí)我們指定日志輸出文件
nohup python -u robot.py > robot.log 2>&1 &
-u 就是指定實(shí)時(shí)的日志輸出目錄,而 & 符號(hào)是使程序在后臺(tái)運(yùn)行,一邊運(yùn)行還可以一邊查看日志輸出文件,這里的 robot.log 就是我們的日志輸出文件。
還有一個(gè)問題,我想停止機(jī)器人怎么辦?可以使用這個(gè)命令
kill PID
這里 PID 為 linux 系統(tǒng)上的進(jìn)程號(hào),要想停止哪個(gè)后臺(tái)程序就填上它對(duì)應(yīng)的 PID 即可,查看 PID
ps -ef | grep python
箭頭所指就是 PID 了。
最后
由于我現(xiàn)在的知識(shí)水平有限,暫時(shí)只能說明這么多,這些都是我當(dāng)初在第一次使用時(shí)所做的記錄,如有錯(cuò)誤,還請(qǐng)幫忙指出。同時(shí)還參考了幾篇文章:
https://www.cnblogs.com/sanduzxcvbnm/p/5984352.html
https://blog.csdn.net/miner_zhu/article/details/81315974
https://blog.csdn.net/eastmount/article/details/79321822
-
服務(wù)器
+關(guān)注
關(guān)注
12文章
9671瀏覽量
87211 -
python
+關(guān)注
關(guān)注
56文章
4823瀏覽量
86107 -
腳本
+關(guān)注
關(guān)注
1文章
396瀏覽量
28331
原文標(biāo)題:不用開著電腦,如何將腳本代碼放到服務(wù)器上?
文章出處:【微信號(hào):rgznai100,微信公眾號(hào):rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
如何在阿里ECS服務(wù)器上架設(shè)自己的OpenVPN服務(wù)器?
LabVIEW從腳本服務(wù)器獲取變量失敗
stm32f10x的源代碼放到stm32f20x的板子上
【Banana Pi M1+試用體驗(yàn)】6.在pi服務(wù)器上部署自己的網(wǎng)站
如何在linux服務(wù)器上使用hanlp
請(qǐng)問如何將自己的代碼添加到工程中?
是否有必要將rt-thread的內(nèi)核代碼都放到itcm來運(yùn)行
在rt-thread studio開發(fā)環(huán)境下如何指定內(nèi)核代碼放到ITCM運(yùn)行呢?
NodeMCU上Lua的VNC服務(wù)器問題求解
如何將文件上傳到NodeMCU ESP8266 telnet服務(wù)器?
服務(wù)器端腳本與動(dòng)態(tài)網(wǎng)頁設(shè)計(jì),下載
使用 Shell 腳本掩蓋 Linux 服務(wù)器上的操作痕跡的步驟解析
怎樣用Wamp服務(wù)器運(yùn)行PHP腳本

評(píng)論