PyCharm远程连接AutoDL服务器实现程序调试

news2024/11/16 19:57:32

本文详细介绍了如何在Pycharm中配置SSH和SFTP,以便于在AOTUDL服务器上进行代码修改、调试。步骤包括新建工程、配置SFTP连接、设置Rootpath和Mapping,以及实现自动上传和下载文件的功能。远程服务器编辑调试只是试用于专业版本的pycharm,我的PyCharm版本是PyCharm 2024.1.3 (Professional Edition)。

警告:如果使用PyCharm直接执行或开终端执行训练程序,请在调试完成后最后通过tmux工具开守护进程(参考文档:守护进程),确保程序不受SSH连接中断影响程序执行!

一、配置SFTP。

1. 首先新建立个工程。点击pycharm左上方File选项,然后点击New Project...新建个工程。

在新建工程的页面,进行如下图的选择。选择Pure Python类型,填写的新建项目的名字及保存地址。关于interpreter先不用管,后续会选用AutoDL的云服务器conda env下的python interpreter。

2. 配置PyCharm SSH

点击左上角的PyCharm图标 -> [Settings..]菜单,打开以下设置弹窗,选择Project:Streamer-Sales 点击 [Python interpreter] 设置项,弹出如下窗口:

点击Add Interpreter,选择On SSH并点击 (PyCharm社区版本无该选项):

其中Host,Username, Port在AutoDL中的SSH登陆指令下复制即可:(Username均为root,Host和Port查看自己实例的SSH指令)

下一步:输入SSH的密码(复制上图中的SSH登陆指令中的密码)

继续下一步,直到看到下面的弹窗。选择System Interpreter,配置远程Python解释器地址为/root/miniconda3/envs/streamer-sales/bin/python(如果您在miniconda中安装了其他的虚拟环境,那么虚拟环境的python解释器路径在/root/miniconda3/envs/{对应的虚拟环境名称}/bin/python)

配置同步目录,意思是本地项目和远程实例中的哪个目录进行关联,这里设置为实例的数据盘子目录:/root/Streamer-sales

点击创建,如果配置均无误PyCharm会有小会配置过程,完成后即可远程开发。

配置好PyCharm远程开发后,可以在PyCharm的终端中下拉找到远程服务器打开远程终端:

3. 配置SFTP

在导航栏部分找到Tools→Deployment→Configuration进行配置:

由于前面已经配置了PyCharm SSH,所有左边已经有了一个服务器,给服务器改一个名字,如AutoDL_server。

3.1 配置Connection

点击“Test Connection”按钮,在弹出的对话框中显示了Successfully connected to connect.nma1.seetacloud.com。

接下来需要配置Root path,因为我的代码是放在aotudl中的系统盘/root/Streamer-Sales中,所以这样配置,我选择了Use Rsync for download/upload/sync。

3.2 配置Mappings

这部分的用处是将我们本地的文件夹和服务器上的项目文件夹联系映射起来。Local Path默认是项目文件夹所要存储在本地的目录地址及文件夹。Deployment path的这个地方要填入的是我们的项目在服务器上的文件夹,而这里要注意的是要填入相对于Root Path的路径,而不是绝对路径。

最后点击OK.

这时我们可以在导航栏找到Tools→Deployment→Browse Remote Host。

这时则需要我点击上图所示None旁边的下滑菜单,选中我们刚刚命名的AutoDL_server。出现以下界面:

在导航栏找到Tools→Deployment→Download from AutoDL_server,随后我们可以在左侧菜单栏就可以看到我们已经将服务器上的项目下载到本地中。

这个时候我们可以对其进行编辑,在导航栏找到Tools→Deployment→Automatic Upload,打开,这时候我们对文件的更改就会自动上传到服务器上。

然后双击选中要调试的文件夹,就可以进行调试运行了,当然也可以用命令行去运行程序。

二、在PyCharm中远程调试AutoDL上的程序

在 PyCharm 中,进行远程调试云服务器(例如 AutoDL 算力云)上的 Python 程序,可以通过配置远程 Python Debug Server 实现。这种方式允许你在本地的 PyCharm 中调试运行在远程服务器上的代码。

1. 在 PyCharm 中配置 Debug Server

  1. 创建 Debug Server 配置

    • 打开 Run 菜单,选择 Edit Configurations...
    • 点击左上角的 +,选择 Python Debug Server
    • 设置名称,例如 Remote AutoDL Streamer-Sales
  2. 设置 Debug 端口

    • Port 字段中,设置一个你希望 PyCharm 本地监听的端口,例如 5678。确保该端口没有被其他程序占用。
    • 如果你不确定端口号,可以选择任意一个空闲的端口。
  3. 启动 Debug Server

    • 配置完成后,点击 Apply 保存,然后点击 OK
    • 选择你刚创建的配置,点击运行按钮旁边的 Debug 按钮,启动本地的 Debug Server。
    • PyCharm 会显示 "Waiting for incoming connection on port 5678"。

2. 在远程服务器上设置 Python 脚本

2.1 安装 pydevd-pycharm

在你的云服务器上,通过 pip 安装 PyCharm 远程调试所需的 Python 库:

pip install pydevd-pycharm~=debugger-compatible-version

替换 debugger-compatible-version 为 PyCharm 版本所支持的调试器版本。例如,PyCharm 2024.1支持的版本应为 pydevd-pycharm~=232.0

2.2 修改远程 Python 脚本

在你想要调试的 Python 脚本中,添加如下代码,确保你可以通过远程服务器连接到本地 PyCharm 的 Debug Server:

import pydevd_pycharm

# 替换为你的本地主机 IP 和 PyCharm 设置的调试端口
pydevd_pycharm.settrace('YOUR_LOCAL_IP', port=5678, stdoutToServer=True, stderrToServer=True, suspend=False)
  • YOUR_LOCAL_IP: 是你的本机 IP 地址,确保云服务器可以访问此 IP。如果你使用 NAT 或 VPN,请确保远程服务器能通过网络访问你的本地机。

  • port=5678: 是你在 PyCharm 中配置的 Debug Server 监听的端口号(例如 5678)。

2.3 运行远程脚本

在云服务器上通过 SSH 运行你修改后的 Python 脚本。此时,远程程序会尝试连接本地的 PyCharm Debug Server。

python your_script.py

如果一切配置正确,远程 Python 程序会通过网络连接到你本地 PyCharm,进入调试模式。

2.4 设置断点并调试

在 PyCharm 中打开你的项目代码,设置断点。

当远程脚本运行时,它会触发断点,PyCharm 将进入调试模式,允许你在本地调试远程执行的代码。

本文参考文档:

Pycharm通过SSH、SFTP连接远程服务器_pycharm sftp-CSDN博客

AutoDL帮助文档:PyCharm远程开发

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2159883.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【LLM学习之路】9月22日 第九天 自然语言处理

【LLM学习之路】9月22日 第九天 直接看Transformer 第一章 自然语言处理 自然语言处理发展史 只要看的足够多,未必需要理解语言 统计语言模型发展史 统计语言模型: 判断一个句子是否合理,就计算这个句子会出现的概率 缺点是句子越长越…

微软推迟在MDM设备上启用OOBE强制更新 因为IT管理员反馈称缺乏控制

微软很久之前就计划在 Windows 10/11 OOBE 期间强制下载更新,即若检测到系统本身属于旧版本例如并未安装最新累积更新,则在 OOBE 期间强制下载最新累积更新并自动安装。这种更新方式已经在面向消费者的设备上启用,而上周微软则是在适用于企业…

盘点那些功能强大的思维导图在线工具,你用过几个

如果我们日常遇到比较繁杂的信息需要梳理,那我比较推荐使用思维导图在线工具进行梳理。这些工具可以通过图形化的方式展示各种信息之间的关系。这篇文章我将要介绍几款好用的思维导图工具帮我们更好的组织思维。 1.福晰思维导图 链接一下:https://www.…

GPIO与MIO控制LED——ZYNQ学习笔记2

一、GPIO简介 ZYNQ 分为 PS 和 PL 两部分,那么器件的引脚( Pin)资源同样也分成了两部分。 ZYNQ PS 中的外设可以通过 MIO( multiplexed I/O,多路复用 I/O)模块连接到 PS 端的引脚上,也可以通过 …

HTML讲解(三)通用部分

目录 1.空格标记 2.特殊文字的标记 3.注释语句 4.对文字字体的设置 5.修改文字形态 6.换行标记 7.居中标记 8.水平线标记 9.设置滚动弹幕 1.空格标记 在HTML中,我们想打印空格并不能直接敲一个空格键,因为如果是敲空格键,那无论你敲…

【JUC并发编程系列】深入理解Java并发机制:Volatile从底层原理解析到高级应用技巧(六、Volatile关键字、JMM、重排序、双重检验锁)

文章目录 【JUC并发编程系列】深入理解Java并发机制:Volatile从底层原理解析到高级应用技巧(六、Volatile关键字、JMM、重排序、双重检验锁)1. Volatile的特性2. Volatile的用法3. CPU多核硬件架构剖析4. JMM内存模型4.1 主要特性4.2 JMM 的工作原理4.3 实现机制 5.…

Leetcode面试经典150题-39.组合总数进阶:40.组合总和II

本题是扩展题,真实考过,看这个题之前先看一下39题 Leetcode面试经典150题-39.组合总数-CSDN博客 给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数…

Docker:解决开发运维问题的开源容器化平台

云计算de小白 Docker是一个开源的容器化平台,可以将应用程序及其依赖的环境打包成轻量级、可移植的容器。 Docker为什么这么受欢迎呢?原因很简单:Docker可以解决不同环境一致运行的问题,而且占用资源少,速度快。 所以好的东西…

链式队列操作

文章目录 🍊自我介绍🍊概述🍊链式队列代码linkstack.clinkstack.hmain.c 你的点赞评论就是对博主最大的鼓励 当然喜欢的小伙伴可以:点赞关注评论收藏(一键四连)哦~ 🍊自我介绍 Hello,大家好&…

OmniPeek 空口抓包软件安装指导

OmniPeek 空口抓包软件安装指导 1 双击omnp75安装包---Unzip解压缩 生成install包 2 进入install文件夹点击setup开始进入安装界面 3 点击install Omnipeek 4 点击next,勾选手动安装

云原生虚拟化kubevirt安装

kubevirt 介绍 Kubevirt 是 Redhat 开源的一套以容器方式运行虚拟机的项目,通过 kubernetes 云原生方式来管理虚拟机生命周期。它通过使用自定义资源(CRD)和其它 Kubernetes 功能来无缝扩展现有的集群,以提供一组可用于管理虚拟机…

9.23作业

仿照string类&#xff0c;自己手动实现 My_string 代码如下 MyString.h #ifndef MYSTRING_H #define MYSTRING_H #include <iostream> #include <cstring>using namespace std;class My_string { private:char *ptr; //指向字符数组的指针int size; …

socket.io-client实现实前后端时通信功能

这里我使用的后端 基于node.js的koa框架 前端使用的是vite {"name": "hou","version": "1.0.0","description": "","main": "app.js","scripts": {"test": "echo …

Pointnet++改进59:全网首发MogaBlock(2024最新模块)|用于在纯基于卷积神经网络的模型中进行判别视觉表示学习,具有良好的复杂性和性能权衡

简介:1.该教程提供大量的首发改进的方式,降低上手难度,多种结构改进,助力寻找创新点!2.本篇文章对Pointnet++特征提取模块进行改进,加入MogaBlock,提升性能。3.专栏持续更新,紧随最新的研究内容。 目录 1.理论介绍 2.修改步骤 2.1 步骤一 2.2 步骤二 2.3 步骤三 1.…

GreenPlum与PostgreSQL数据库

*** Greenplum*** 是一款开源数据仓库。基于开源的PostgreSQL改造&#xff0c;主要用来处理大规模数据分析任务&#xff0c;相比Hadoop&#xff0c;Greenplum更适合做大数据的存储、计算和分析引擎 它本质上是多个PostgreSQL面向磁盘的数据库实例一起工作形成的一个紧密结合的数…

微软宣布弃用面向企业的WSUS更新服务 仍然保留该服务但不再添加任何新功能

Windows Server Update Services 是微软面向企业推出的一项更新服务&#xff0c;该服务已经存在很多年&#xff0c;允许 IT 管理员控制内网设备的更新节奏。今年早些时候微软宣布将在 2025 年 4 月 18 日开始弃用 WSUS 驱动程序同步功能&#xff0c;因为大约只有 1/3 的 IT 管理…

生成PPT时支持上传本地的PPT模板了!

制作 PPT 时想要使用特定的 PPT 模板&#xff1f; 现在&#xff0c;歌者 PPT 的「自定义模板功能」已全面升级&#xff01;你可以轻松上传自己的本地 PPT 模板&#xff0c;无论是公司统一风格的模板&#xff0c;还是带有个人设计风格的模板&#xff0c;都能无缝导入歌者 PPT。…

单链表:学生信息管理系统

一、头文件 #ifndef __LINK_H__ #define __LINK_H__ #include <myhead.h> #define MAX 30 // 建立学生结构体 typedef struct student {int id; //学号char name[20]; //姓名float score; //分数 }stu;typedef struct node {union{int len;stu data;};struct node * nex…

玄机--哥斯拉流量

1、黑客的ip 过滤http&#xff0c;观察哪个ip一直在发送请求包 2、什么漏洞 因为是哥斯拉&#xff0c;那么黑客在连接成功之前一定上传这个木马文件到服务端 hello.jsp是木马文件&#xff0c;过滤http contains “hello.jsp” 最早是PUT这个方法 3、文件名 hello.jsp 保存…

让AI激发创作力:OpenAI分享5位专业作家利用ChatGPT写作的案例技巧

大家好&#xff0c;我是木易&#xff0c;一个持续关注AI领域的互联网技术产品经理&#xff0c;国内Top2本科&#xff0c;美国Top10 CS研究生&#xff0c;MBA。我坚信AI是普通人变强的“外挂”&#xff0c;专注于分享AI全维度知识&#xff0c;包括但不限于AI科普&#xff0c;AI工…