CentOS下運行Python程序

?在Linux虛擬機下運行爬蟲程序是非常硬的剛需暑认。讓爬蟲在后臺運行可以節(jié)省本機資源柏肪,亦可以充分利用電腦不開機的時間达皿。
?在使用爬蟲的過程中天吓,依次遇到了這幾個問題:安裝python3.5、yum兼容性問題峦椰、SSH中斷時保持運行


  • 安裝python3.5

python3才是目前主流的python版本龄寞,因此安裝python3是必然的。我之前用的是3.5汤功,所以選擇安裝python3.5物邑,參考資料是這篇博客
在安裝之前應該先把依賴項裝好,以免之后出奇怪的問題色解。

yum -y groupinstall "Development tools"
yum -y install openssl-devel sqlite-devel bzip2-devel ncurses-devel gdbm-devel readline-devel tcl-devel tk-devel xz-devel zlib-devel db4-devel libpcap-devel

?然后是從官方網(wǎng)站下載python的包并解壓茂嗓。
?你可以自己使用mv指令把這個包扔到你喜歡的位置。

wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz
tar -zxf /usr/local/src/Python-3.5.1.tgz

?這個包相當于未安裝的程序科阎,我們還需要編譯和安裝述吸。

# 具體要看你的包位置在哪
cd Python-3.5.1
./configure --prefix=/opt/python3.5 --enable-shared
make && make install

?在./config的過程中,可能會報錯锣笨。仔細看報錯信息蝌矛,很可能是gcc報錯。
?這是因為沒有gcc的包错英,使用yum install gcc來獲取入撒。
?值得注意的是CentOS的yum指令是需要python解釋器的,路徑是

 /usr/lib/python

?進入/usr/lib 路徑之后椭岩,可以通過指令ll python*查看文件和依賴關系茅逮。
?因此在你裝好python3.5之前,不要隨手刪了這個文件簿煌。你可以使用

mv python python.bak

?來替代rm -rf python的粗暴指令氮唯。
?這樣如果安裝過程中出現(xiàn)缺少包,需要使用yum指令姨伟,那你還有救惩琉。
?最后就是把python解釋器重新軟鏈接到python3.5上面

# /usr/python3.5/bin/python3 應當被改為你的python3路徑
ln -s /usr/python3.5/bin/python3 /usr/bin/python3
echo "/opt/python3.5/lib" > /etc/ld.so.conf.d/python3.5.conf

  • yum兼容性問題

現(xiàn)在解釋器是python3的版本了,但是有兩個系統(tǒng)應用用的還是python2的解釋器夺荒。它們分別是yumurlgrabber-ext-down瞒渠。如果不做修改直接使用,就會報這樣的錯誤:

except OSError, e:
              ^

?所以我們要稍作修改技扼,把文件頭部的#!/usr/bin/python改成
?#!/usr/bin/python2伍玖,這樣它們就知道該用哪個解釋器了。
?兩個文件路徑分別是

/usr/bin/yum
/usr/libexec/urlgrabber-ext-down

?用vi打開即可
?使用中還發(fā)現(xiàn)了兩個小問題剿吻,一個是tqdm庫不太好用窍箍,無法在同一行輸出。
?另一個是selenium使用的chromedriver要重新下載合適的版本丽旅。


  • SSH中斷時保持運行

通過SSH連接服務器之后椰棘,通常希望程序能一直保持運行狀態(tài)。這里就需要用到nohup&這兩個指令榄笙。
nohup作為一條指令的開頭邪狞,表示這條指令不會被HUP信號中斷。當你的SSH斷開時茅撞,服務器的程序會接到HUP信號帆卓,而nohup會忽略這個信號巨朦。
&作為一條指令的結尾,表示這條指令不會被INT信號中斷剑令。有時我們會用ctrl+c來終止一條指令糊啡,這個時候就是發(fā)送了INT信號。
因此尚洽,如果希望程序后臺運行悔橄,且在SSH中斷后還能保持運行,可以使用

nohup python test.py &

除了后臺運行腺毫,還有一個問題是輸出癣疟。在控制臺監(jiān)控輸出當然好,但是如果是后臺運行呢潮酒?這就需要寫日志睛挚。
nohup指令默認會把所有的輸出都輸出到nohup.out文件中。當然急黎,你可以指定輸出哪些內(nèi)容扎狱,也可以指定輸出到哪個文件夾。
nohup python test.py > nohup.log 可以讓你的輸出進入名為nohup.log的文件勃教;python test.py 2>nohup.log可以在正常運行的基礎上淤击,讓你的錯誤輸出進入nohup.log文件」试矗看到這里應該對輸出有了大概的概念了污抬。
事實上,真正起作用的是>指令绳军。使用012分別代表STDIN(標準輸入)印机、STDOUT(標準輸出)、STDERR(標準錯誤輸出)门驾,使用>表示流的方向射赛,輸出端使用&來區(qū)分標準流和文件。
因此奶是,你可以使用2>&1表示錯誤信息會被重定向到標準輸出楣责,使用&>a.log表示所有輸出都重定向到a.log
最后聂沙,一條常用的指令是

nohup command > myout.file 2>&1 &

先把標準輸出重定向到輸出文件秆麸,再把標準錯誤輸出重定向到標準輸出。亦即逐纬,輸出全部定向到輸出文件。而這條指令是后臺運行削樊,不被crtl+c打斷豁生,不被SSH中斷打斷兔毒。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市甸箱,隨后出現(xiàn)的幾起案子育叁,更是在濱河造成了極大的恐慌,老刑警劉巖芍殖,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件豪嗽,死亡現(xiàn)場離奇詭異,居然都是意外死亡豌骏,警方通過查閱死者的電腦和手機龟梦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來窃躲,“玉大人计贰,你說我怎么就攤上這事〉僦希” “怎么了躁倒?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長洒琢。 經(jīng)常有香客問我秧秉,道長,這世上最難降的妖魔是什么衰抑? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任象迎,我火速辦了婚禮,結果婚禮上停士,老公的妹妹穿的比我還像新娘挖帘。我一直安慰自己,他們只是感情好恋技,可當我...
    茶點故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布拇舀。 她就那樣靜靜地躺著,像睡著了一般蜻底。 火紅的嫁衣襯著肌膚如雪骄崩。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天薄辅,我揣著相機與錄音要拂,去河邊找鬼。 笑死站楚,一個胖子當著我的面吹牛脱惰,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播窿春,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼拉一,長吁一口氣:“原來是場噩夢啊……” “哼采盒!你這毒婦竟也來了?” 一聲冷哼從身側響起蔚润,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤磅氨,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后嫡纠,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體烦租,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年除盏,在試婚紗的時候發(fā)現(xiàn)自己被綠了叉橱。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡痴颊,死狀恐怖赏迟,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蠢棱,我是刑警寧澤锌杀,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站泻仙,受9級特大地震影響糕再,放射性物質發(fā)生泄漏。R本人自食惡果不足惜玉转,卻給世界環(huán)境...
    茶點故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一突想、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧究抓,春花似錦猾担、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至橘茉,卻和暖如春工腋,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背畅卓。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工擅腰, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人翁潘。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓趁冈,卻偏偏與公主長得像,于是被迫代替她去往敵國和親拜马。 傳聞我的和親對象是個殘疾皇子渗勘,可洞房花燭夜當晚...
    茶點故事閱讀 45,077評論 2 355