使用环境

  1. 本地Pycharm编辑器中打开的py主程序
  2. 远程服务器中的虚拟环境、工程文件
  3. 运行py文件:①在Pycharm中直接运行 ②在Pycharm的ssh终端运行 ③使用终端工具在terminus中运行(可避免本地与服务器断连时程序被终端)

①在Pycharm中直接运行通过

py主程序所在的工程项目中有多个文件和文件夹,且py主程序import了第三方库和多个py文件,可以正常运行。当运行程序时间较长时,偶尔会遇到服务器断连的情况,此时pycharm中的程序就中断了,只能重连后从头开始运行。。。
(之前就一直想实现在终端运行程序,但因为当时没搞懂方法没跑通就被搁置了,这次终于跌跌撞撞的实现了,特此记录以供参考)

②在Pycharm的ssh终端运行

首先需要打开ssh终端,并选择远程服务器,如下图:

如果之前从来没有在这里打开过,可能点击箭头后出来的列表里没有上述服务器地址(不确定是否这样,我第一次在pycharm中打开终端时是在下图位置)可以按照下图方法打开:工具——启动SSH会话…

在这里插入图片描述
打开后默认进入的是base环境,此时也可以直接运行py文件,但如果在pycharm中运行时使用的是虚拟环境,很多第三方库也安装在了虚拟环境中,这样py文件就会报错:ModuleNotFoundError: No module named ‘xxx‘,已经有很多教程在解决这个问题了,其中的一个原因就是没有真正进入到应该运行此py文件的环境中

在这里插入图片描述

使用指令 conda info --envs查看已安装的环境,进入可以运行py程序的环境 (这一步也进行了很久,一开始以为直接cd进入到python文件夹位置就可以了,结果不对,后来误打误撞使用了activate命令才发现可以查看已经有的环境,后来activate命令使用不对又没进入环境,最后才写对了指令太菜啦),如下图,由base环境进入了pytorch环境

在这里插入图片描述

接下来就可以运行程序了

在这里插入图片描述

如果运行主程序还有更多要求,请看以下情况

情况一:如果在主程序中import了其他py文件,还需要在主程序中导入工程目录

import os
import sys
sys.path.append(os.path.dirname("工程的根目录"))		# 保证在终端运行时,可以被检索到目录

情况二:如果主程序需要额外配置参数

此时在终端执行python时直接空格添加参数即可,参数名和参数直接是空格,多个参数之间也是空格注意不要打上换行键 /,否则识别到换行键就会认为要执行运行了

在这里插入图片描述

③在终端工具terminus中运行,断连后程序仍可继续运行

借助Linux命令:screen

  1. 创建screen窗口 screen -S '自定义窗口的名字'
  2. 进入窗口后,按照在pycharm的ssh终端运行方法的步骤,从base环境进入pytorch环境中运行即可,方法相同,此时即使本地断连了服务器也可以保持程序继续运行
  3. 之后就是screen指令操作了,screen -ls :查看当前有哪些会话以及它们各自的状态
Logo

更多推荐