上次弄了個機器人,反響挺不錯的,我也挺滿意的,由於這個我也初步瞭解了服務器這個東西,懂得了如何將本身的腳本代碼放到服務器上運行了,媽媽不再怕我天天都得開着電腦才能運行腳本了,不過說實話,這個服務器真貴,不過有阿里雲學生機,想嘗試瞭解下的能夠去試試,很是建議去折騰下,能夠學到的東西不少。html
若是你尚未了解個人機器人,能夠看看爲了大家,我用一天時間作了一個機器人!,也歡迎你們加我進羣哈,你們一塊兒交流學習!python
當時爲了將代碼放到服務器上運行,也花了不少時間,因此避免還有不會的小白同窗,記錄下此過程,讓他們少走點坑。linux
若是你是學生的話,想折騰的能夠去阿里雲那裏購買,由於有學生機優惠,只須要9.9一個月,可是隻能購買一次,在下一次購買須要作任務才能夠繼續享用學生機優惠。若是你是土豪的話,能夠直接忽略這個。sql
由於此次我只須要把機器人腳本運行就能夠了,因此直接選擇學生機的配置就夠用了。vim
阿里雲的學生機購買連接:https://promotion.aliyun.com/ntms/act/campus2018.html?spm=5176.10695662.1244717.1.605c4804V5gfhscentos
點擊購買便可。bash
這個密碼是你登錄上服務器的密碼,須要記住,登錄用戶名就是 root。服務器
接下來就是掃碼支付了。app
購買了點擊阿里雲控制檯,點擊雲服務器ECS,就能夠看到你剛纔購買的服務器了。python2.7
再點擊下面的雲服務器,你就能夠看到這個服務器的相關配置了
鏈接服務器能夠在這個頁面的右邊的遠程鏈接進行鏈接,這個第一次點進去會有個遠程鏈接密碼,須要記住,由於每次在這裏進行遠程鏈接的時候都須要填入這個密碼。
鏈接成功就會顯示一個黑色框,這裏鏈接服務器雖然能夠,可是不太方便,這裏推薦你們一個在 window 的免費 ssh 鏈接工具 putty
須要在服務器上運行 Python 腳本 ,就必需要在服務器上有 Python 的環境,在阿里雲購買的學生機默認就裝有 Python 的,不過版本是 2.7.5。這裏咱們從新安裝 Python3,是這個服務器上能夠多個版本共存。
先在 putty 上鍊接咱們的服務器。
上面的 ip 地址就是咱們購買的服務器的共有ip地址,使用 ssh鏈接就好了。不過還得設置一個東西,不設置的話,若是超過一段時間不動終端的話,就會自動斷開,又得從新鏈接。
這裏設置成 60 秒就能夠了,原理我如今不太記得了,若是有讀者知道的話,能夠在留言區說下。
點擊 open,而後填寫用戶名 root 和本身以前設置的密碼便可登錄成功,如上圖。
接下來就是開始安裝咱們的 Python3 環境了。
先查看下 centos 服務器的已安裝的 Python 版本
python -V複製代碼
我這裏是 3.6.8 版本,由於我從新配置了,若是你第一次使用,這個結果是 python 2.7.5
查看 python 可執行文件的路徑
能夠看到所在的目錄,進入這個 bin 目錄,並查看 python 文件
能夠看到我這裏的 python 指向了 python3 這個文件,可是大家第一次的會指向 python2.7 這個文件,接下來就是將 python 這個軟鏈接指向 python3 就好了。若是怕弄壞的,想備份原來 python2 的文件能夠執行 mv python2.7 python.bak 就能夠將文件備份到當前目錄了。
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make複製代碼
須要須要確認時直接輸入 y 便可
若是以爲下載網速有點慢的話,能夠更換阿里雲源,能夠參考這個鏈接: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 源碼包
tar xf Python-3.6.8.tar.xz -C /usr/local/src/複製代碼
這個是將 python 源碼包解壓到文件夾 /usr/local/src 內,這裏你也能夠本身指定解壓目錄,你本身記得解壓位置便可。
安裝 python3
./configure --prefix=/usr/local/python3複製代碼
這裏的地址須要指定爲本身的 python 源碼包解壓地址。
編譯
make && make install複製代碼
這時候能夠說安裝 python3 成功了,咱們可使用這個命令查看
/usr/local/python3/bin/pip3 list複製代碼
更新 pip 版本
/usr/local/python3/bin/pip3 install --upgrade pip複製代碼
也能夠查看一下是否更新成功
/usr/local/python3/bin/pip3 list複製代碼
如今就是須要將 python3 這個文件創建軟鏈接,使 python 指向 python3 便可。
ln -s /usr/local/python3/bin/python3 /usr/bin/python複製代碼
執行以後查看 python 版本
python -V複製代碼
成功以後就會看到 python 指向了 python 3.6.8 版本,若是出錯了
bash: python: command not found...複製代碼
這個是你創建軟連出問題了,可能指定的 python3 安裝路徑不正確,這時候將 python 這個軟鏈接刪除從新建立便可。
你能夠進入 。/usr/bin 目錄,查看是否建立軟鏈接成功
若找到 python 這個指向爲紅色顯示的,證實建立錯誤了,python3 的地址錯誤了。
這時就刪除這個 python 軟鏈接
再從新建立 python 軟鏈接便可
ln -s /usr/local/python3/bin/python3 /usr/bin/python複製代碼
這前面的地址就是 python3 的安裝路徑,就是有 python3 這個文件的目錄。
由於 yum 原來是使用 python2 的,改了 python3 以後可能會出錯,因此須要從新配置。
修改 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 退出便可
如今就完成了 python 環境的配置了。
爲了方便管理,我這裏使用了虛擬環境,防止每一個腳本運行時所須要的庫進行衝突,若是你暫時沒有想那麼複雜,只是想運行一次腳本而已,也能夠沒必要要使用虛擬環境,不過仍是建議使用虛擬環境的,畢竟始終都須要用到的。
這個是建立 虛擬環境使用的庫。
pip3 install virtualenv複製代碼
注意:這裏使用的是 pip3,如果直接使用 pip 則對應的是 python2 版本的。
這個庫是爲了方便管理虛擬環境使用的
pip3 install virtualenvwrapper-win複製代碼
下載完了還須要配置環境變量
vim ~/.bashrc複製代碼
在末尾添加上這兩句
export WORK_HOME=$HOME/.virtualenvssource /usr/local/python3/bin/virtualenvwrapper.sh複製代碼
第一句是固定的,第二句爲指定 virtualenvwrapper 安裝的路徑
激活配置
source ~/.bashrc複製代碼
而後進入你想建立虛擬環境的路徑,輸入如下命令
mkvirtualenv py3_test複製代碼
建立成功以後會自動進入該虛擬環境
可是這裏默認使用的是 python2 版本指定的虛擬環境,須要使用 python3 版本能夠指定版本建立
指定 python 版本建立虛擬環境
mkvirtualenv py3 --python=python複製代碼
上面使用 --python 參數來指定 python 版本,由於 python 這個文件是指向 python3 的,因此能夠這樣使用,固然你也能夠填上你 python3 版本的位置,這時虛擬環境的 python 版本就是 3 了。
這裏就是在虛擬環境中使用 pip3 安裝 itchat 和 requests 庫(用於爬蟲獲取早報)便可
因爲服務器上本來就帶有 ftp 服務器的,因此咱們只須要在本地安裝個 fileZilla 客戶端進行鏈接便可,本身去官網下載便可。
這裏填上本身的服務器 ip 地址和鏈接帳號和密碼 ,點擊鏈接便可
鏈接成功以後,左邊就是咱們服務器上面的文件了,右邊就是本地文件,右擊須要上傳的文件選擇上傳便可。上傳成功以後便可在服務器上看到相關文件。
接下來就是運行腳本了。
能夠直接像在本地同樣運行腳本
python robot.py複製代碼
這樣就能夠 運行成功了,可是咱們在關閉鏈接以後,這個腳本就中止了,那豈不是仍是須要開着電腦掛機?
別急,咱們能夠在後臺運行腳本啊,這樣即便關閉鏈接,也同樣在運行。使用命令以下:
nohup python robot.py複製代碼
這時你能夠查看進程
ps -ef | grep python複製代碼
就會看到咱們剛纔 robot 代碼已經運行起來了,這個就是在後臺運行,關閉鏈接以後同樣會運行,這下就放心了。
可是,若是發生錯誤的話,咱們是沒法知道哪裏出錯的,這時咱們指定日誌輸出文件
nohup python -u robot.py > robot.log 2>&1 &複製代碼
-u 就是指定實時的日誌輸出目錄,而 & 符號是使程序在後臺運行,一邊運行還能夠一邊查看日誌輸出文件,這裏的 robot.log 就是咱們的日誌輸出文件。
還有一個問題,我想中止機器人怎麼辦?可使用這個命令
kill PID複製代碼
這裏 PID 爲 linux 系統上的進程號,要想中止哪一個後臺程序就填上它對應的 PID 便可,查看 PID
ps -ef | grep python複製代碼
箭頭所指就是 PID 了。
因爲我如今的知識水平有限,暫時只能說明這麼多,這些都是我當初在第一次使用時所作的記錄,若有錯誤,還請幫忙指出。同時還參考了幾篇文章:
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
最後碼字不易,若是對你有用的話,那就拍拍雙手點個「好看」吧,或者分享給你的朋友一塊兒學習!