掃二維碼與項(xiàng)目經(jīng)理溝通
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
在linux下可以直接使用python test.py運(yùn)行的文件,使用nohup python test.py就會(huì)報(bào)錯(cuò),報(bào)的錯(cuò)大致就是Import error: No module named XXX。

出現(xiàn)這種情況是因?yàn)閚ohup找到的python路徑不對(duì)導(dǎo)致的。
那么nohup找的的路徑是什么呢?
新建了一個(gè)python文件,文件內(nèi)容是這樣的:
import sys print(sys.path)
當(dāng)使用python test.py運(yùn)行文件時(shí),輸出是:
當(dāng)使用nohup python test.py時(shí),輸出是這個(gè)樣子的
也就是說(shuō),直接運(yùn)行python命令使用的是python3,但是nohup找到的python路徑是python2。這時(shí)候就需要指定python版本來(lái)運(yùn)行py文件。
這時(shí),只要指定python版本來(lái)運(yùn)行nohup文件即可:
也就是:nohup //usr/local/python3/bin/python3 test.py > log.txt2>&1 &。
其中,1代表標(biāo)準(zhǔn)輸出,2代表標(biāo)準(zhǔn)錯(cuò)誤輸出,2>&1 是將標(biāo)準(zhǔn)錯(cuò)誤輸出重定向到標(biāo)準(zhǔn)輸出,也就是將標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤輸出都輸出到log.txt文件中,最后的&將程序變?yōu)楹笈_(tái)守護(hù)進(jìn)程,這樣運(yùn)行的程序就不會(huì)隨著終端的掛起而停止。

我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流