1. 程式人生 > >使用nohup執行python檔案報錯:Import error: No module named XXX等

使用nohup執行python檔案報錯:Import error: No module named XXX等

最近在用linux跑神經網路模型,由於跑一輪時間比較長,而且網路不穩定Xshell容易斷開,所以需要使用nohup執行python檔案,但是遇到了問題。

在linux下可以直接使用python test.py執行的檔案,使用nohup python test.py就會報錯,報的錯大致就是Import error: No module named XXX,例如numpy,pandas引入錯誤。直接複製這個錯誤,在必應上搜了很久,終於找到一篇相關的帖子,大致意思是說,nohup找到的python路徑不對。

那麼nohup找的的路徑是什麼呢?新建了一個python檔案,檔案內容是這樣的:

import sys
print(sys.path)

當使用python test.py執行檔案時,輸出是:


當使用nohup python test.py時,輸出是這個樣子的

也就是說,直接執行python命令使用的是python3,但是nohup找到的python路徑是python2。這時候就需要指定python版本來執行py檔案。

輸入which python,得到當前預設使用的python路徑:

這時,只要指定python版本來執行nohup檔案即可:

也就是:nohup //usr/local/python3/bin/python3 test.py > log.txt2>&1 &。

其中,1代表標準輸出,2代表標準錯誤輸出,2>&1 是將標準錯誤輸出重定向到標準輸出,也就是將標準輸出和標準錯誤輸出都輸出到log.txt檔案中,最後的&將程式變為後臺守護程序,這樣執行的程式就不會隨著終端的掛起而停止。

要看當前程序可以使用ps –a檢視程序,kill +程序號停止某個程序。這裡nohup執行程式之後就會出現python3的程序,但是終端退出後再次連線,ps –a就無法顯示該程序。這時可以使用top命令檢視所有程序。top命令可以按CPU使用,記憶體使用和執行時間對任務進行排序顯示。

Mark一下,畢竟因為這個浪費了挺多時間和精力~





相關推薦

使用nohup執行python檔案Import error: No module named XXX

最近在用linux跑神經網路模型,由於跑一輪時間比較長,而且網路不穩定Xshell容易斷開,所以需要使用nohup執行python檔案,但是遇到了問題。在linux下可以直接使用python test.py執行的檔案,使用nohup python test.py就會報錯,報的

mac下使用pycharm執行python程式OSError:[Error 13] Permission denied:

發現自己工程目錄下的external Libraries下面這些庫都是鎖的狀態,所以懷疑是許可權的問題,嘗試解決如下:通過chown -R ‘username’ 'pathname'命令修改資料夾所屬使用者:修改完再檢視pycharm下的External Libraries目

python安裝docx模組出現Import Error: No module named 'exceptions'的解決方案

    最近想使用python+word來做文件的提取,於是想用docx三方庫,我用的是python 3.6,開發環境為Anaconda3,於是通過Anaconda  的Anaconda Prompt命令視窗安裝docx,輸入一下指令:pip install docx命令視窗

mac終端下執行java檔案找不到或無法載入主類

由面試題出來的 為了顯示 myStr = 23 這樣的結果,寫出在控制檯輸入的命令 public class MyClass { public static void main(String args[]) { String s1 = args[0]; String s2 = args[

Linux命令列執行.py指令碼import 未找到命令

在linux中直接通過vi編輯器寫了一個python指令碼檔案(裡面import了一些庫),然後在命令列中執行時報錯,說import未找到命令(其實就是找不到那些庫檔案),出現這個問題的原因是因為:在python指令碼檔案中沒有指定安裝python程式時的python路徑。解

瀏覽器訪問IIS伺服器上面的plist檔案HTTP Error 404.3

報錯:HTTP Error 404.3 - Not FoundThe page you are requesting cannot be served because of the extension configuration. If the page is a scrip

centos上解壓檔案tar: Error is not recoverable: exiting now

例如解壓檔案命令為: tar -zxvf hadoop-2.6.2.tar.gz 解壓時錯誤資訊為:  gzip: stdin: unexpected end of file tar: Unexpec

SFTP 上傳檔案SFTP ERROR?Algorithm negotiation fail

專案過程中曾經遇到這樣一個錯誤:SFTP ERROR?Algorithm negotiation fail。java程式碼利用SFTP上傳客戶伺服器報錯,但是可以在Linux上上傳成功,嘗試過很多解決

如何解決在Python中使用Win32api的問題 ModuleNotFoundError: No module named 'win32api'

如何解決在Python中使用Win32api報錯的問題 ModuleNotFoundError: No module named 'win32api' 解決方法 pip install pypiwin32或pip3 install pypiwin32 或 python -

spyder中Import Error: no module named 'past'解決方法

spyder下執行一個專案,程式碼沒錯,但是報了Import Error: no module named 'past'的錯誤。我是安裝了anaconda/tensorflow/keras一套的環境;python3.5。 遇到這個錯誤查到了好的解決方案。記錄一下。 錯誤: 解決方案,在

Windows下執行python指令碼“ImportError No Module named ...”的解決方法

之前遇到一個問題,在Pycharm或IPython之類的IDE上執行指令碼正常,但是直接執行或cmd命令列執行的時候報了模組未能找到的 誤——ImportError: No Module named ...。 這是啥情況? Python在啟動直譯器(Interpreter)的時候

python執行緒操作No handlers could be found for logger "websocket"

用python模擬對講機線上工具,在伺服器上成功連線的連線上限是1020個,需要確定遇到這個瓶頸的原因 1.連線失敗時的報錯資訊為 No handlers could be found for logger "websocket" 解決方法: import logging

當pycharm環境下已經有HTMLTestRunner.py檔案時,執行程式仍然No module name HTMLTestRunner

若遇到如上報錯,可以用以下方法解決首先檢視工程的路徑進入setting-project Interpreter檢查pycharm setting裡面路徑是否正確,看路徑是否為當前虛擬環境venv的路徑,下圖路徑不正確(圖一不正確)圖一當檢查發現路徑不正確的時候,將整個venv

WebStorm執行Node.js檔案runnerw.exe: CreateProcess failed with error 2

點選工具欄的 Run —> Edit Configurations… 可以看到我這裡是 Node interpreter 的路徑錯了 選擇一個正確的路徑即可 注意:也有可能是另一

用記事本編寫第一個Java程式執行時 出現錯誤: 類helloworld是公共的, 應在名為 helloworld.java 的檔案中宣告 public class helloworld {

在書本上盲人摸象的摸索學習Java,Java環境配置完成,安裝好eclipse後,便興沖沖的去在記事本上編寫第一個Java程式,結果給破了一盆冷水,略懵        public class helloworld {public static void main(St

python 向linux vsftpd伺服器傳檔案ftplib.error_perm: 550 Permission denied

使用ftp模組向vsftpd伺服器上傳檔案報550錯誤的,程式碼如ftprun.py所示,vsftpd伺服器執行在ubuntu16.04。 解決方法解: 修改配置檔案:sudo gedit /etc/vsftpd.conf 去掉“write_enable=YES”前面

python mysqldb ProgrammingError: must be real number, not str 解決

動作 value mysq pan class price error: img book 代碼: sql = ‘insert into book(book_name,book_desc,origin_price,publish_id,tag_id,book_img) v

R中執行if elseunexpected 'else' in "else"

cte () str nbsp 括號 strong 不能 expected lse 註意if else的結構寫法,有以下三種,除此之外,會不識別else。 結構 1 :     if() xx else yy # 一行;結構 2:     if(

MySql數據庫執行insert時候Column count doesn't match value count at row 1

doesn 發現 相同 ins bsp cti sql數據庫 當前 val 遇到這個問題之後,第一反應就是前後列數不等造成的,但是我檢查SQL之後,發現列數是相同得,但是插入還是有問題,然後又寫了簡單得SQL只插入不為空得字段,執行還是報這個錯,最後請教了高人,指點之後,大

Python指令碼AttributeError:'model' object has no attribute 'XXX'解決方法

錯誤舉例: 錯位原因定位: 檢視import庫的原始檔,發現原始檔存在且沒有錯誤,同時存在原始檔的.pyc檔案 解決方法: 1、命名py指令碼時,不要與python預留字,模組名等相同 例如:模組是ssl,請不要命名ssl.py檔案,因為程式碼執行時會對應生成.pyc檔案。