如何讓程序在關閉SSH連接以後繼續運行並且python無法引用到其他文件夾裏面的包的解決辦法

日前需要用到遠程服務器的高性能計算機來跑實驗,但是非常苦惱的時候我需要GridSearch來選擇優參

然鵝這個過程是比較漫長的,然後我通過EasyConnect連接上去了以後呢,經常跟我說我的連接超時了,需要重新登錄。

把我的網絡連接一斷,我在服務器跑得進程就全部都退出了,我跑了快兩天的心血又炸了,這就讓我心很累了。

然後現在發現通過nohup來在服務器上面跑不怕ssh斷開的影響。

nohup /home/***/anaconda3/envs/cloud/bin/python3.6 -u /home/****/****/xxx.py > XXXX.out 2>&1 &

我們使用nohup命令,然後中間是你的運行命令,然後後面的 > XXXX.out 2>&1 & 是一個重定向,將這個運行命令裏面的輸出重定向到 XXXX.out文件裏面去,最後的一個& 是必要的,這說明了放在後臺運行,這樣ssh在斷開的時候也不會斷開了。

使用了這個命令以後呢,輸出你直接查看XXXX.out就應該可以看到運行命令以後的輸出了。

但是在跑python文件的時候,在PyCharm的工程下面跑的時候很和諧啊,但是爲什麼到了服務器終端上面跑得時候就瘋狂給我輸出Module Not Found的錯誤呢?

這裏就應該是在服務器上的參數設定沒有在PyCharm這種IDE這麼好?

加入這樣文件結構:

·········A
    ·······B
        ·····c
        ·····d
    ·······E
        ·····f
        ·····g
    ·······H
        ·····i

我現在運行文件在E文件夾下面的f,那我的這個f要引用到B文件夾下面的d的時候就會給我報Module Not Found的錯誤

這個時候我就這樣:

在我的運行文件裏面的頭部加上這些代碼:

import sys
import os
curPath = os.path.abspath(os.path.dirname(__file__))
rootPath = os.path.split(curPath)[0]
sys.path.append(rootPath)

然後下面該怎麼引用還是怎麼引用,就可以啦

 

 

(如果可以的話,打賞我一點去買饅頭唄,謝謝謝謝~~~)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章