如何让程序在关闭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)

然后下面该怎么引用还是怎么引用,就可以啦

 

 

(如果可以的话,打赏我一点去买馒头呗,谢谢谢谢~~~)

如何让程序在关闭SSH连接以后继续运行并且python无法引用到其他文件夹里面的包的解决办法_第1张图片如何让程序在关闭SSH连接以后继续运行并且python无法引用到其他文件夹里面的包的解决办法_第2张图片

你可能感兴趣的:(python,操作系统)