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

本文介绍如何使用nohup命令确保远程服务器上的进程在SSH断开后仍能继续运行,解决GridSearch参数选择过程中的连接超时问题。同时,分享了解决服务器终端运行Python文件时ModuleNotFound错误的方法,通过调整系统路径实现跨目录模块引用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

日前需要用到远程服务器的高性能计算机来跑实验,但是非常苦恼的时候我需要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)

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

 

 

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值