使用pycharm远程调试

news2024/12/25 8:59:30

使用pycharm 专业版, 在设置解释器中,具备ssh 解释器功能;

一般在本地无法调试远程端代码,机械性的scp传输文件十分影响工作效率,PyCharm的Pro支持远程Run,Debug,等可视化的功能

  • 操作系统:本地MacOS,远程Linux (本地3个操作系统都是支持的,远程Linux比较稳定)
  • IDE: 最新版本 PyCharm Pro (不支持社区版)
  • python虚拟环境:Anaconda,pip,virtualenv

1. 远程服务器上的环境配置

在使用本地的pycharm 远程 服务器上的pycharm ,
需要获取服务器上的如下信息;

  1. 服务器上的项目路径,需要将数据集提前准备好放在服务器上;
  2. 远程调试时,需要用到服务器中的环境路径, 指定到虚拟环境中的python 路径下面;
  3. 服务器端的用户名,ip 地址, port 端口;

1.1 服务器信息

从服务器上获取如下信息;

1. project path:  pwd
/home/yons/Documents/python_proj/02_patch-mix_contrastive_learning/patch-mix_contrastive_learning-main

2. conda python environments path:
/home/yons/anaconda3/envs/torch2.1.0/bin/python3.8

3. Username:  whoami
yons
4. ip, ifconfig
inet 192.168.xx.xx
5. port:  use default
 22

1.2 远程环境的配置

在服务器上, 需要检查三件事情,

1.2.1 ufw 已经启用

sudo ufw enable

检查状态:
要验证 SSH 规则是否已添加并且防火墙是否处于活动状态,请运行

sudo ufw status

1.2.2. 允许 端口22 进行通信

使用端口 22, 是因为配置pycharm 中 端口默认的是22;

允许 SSH(端口 22):
现在 UFW 已启用,应该允许默认端口 22 上的 SSH 流量。使用以下命令:

sudo ufw allow 22/tcp

1.2.3. ssh 服务已经启动

检查 SSH 服务状态:
确保 SSH 服务正在远程服务器上运行。您可以使用以下命令检查其状态

sudo systemctl status ssh

如果该服务未运行,请使用以下命令启动它:

sudo systemctl start ssh
  • 如果出现: unit ssh.service could not be found
    列出名称中包含“ssh”的所有服务单元,可以使用以下命令:
systemctl list-units | grep ssh

如果没有输出的话,
要确定是否安装了 SSH,您可以使用特定于您的 Linux 发行版的包管理工具。

dpkg -l | grep openssh-server

如果未安装 SSH 服务器,您应该使用包管理器安装它。
例如,在 Ubuntu 上,您可以使用以下命令安装它:

sudo apt update
sudo apt install openssh-server

确保 SSH 服务确实已安装并在您的 Ubuntu 20.04 系统上正常运行。

sudo systemctl status ssh.service

如果服务正在运行,您应该会看到其状态并处于活动状态(正在运行)。

将 systemctl 与服务名称或别名一起使用时,使用完整的服务名称非常重要,在本例中为 ssh.service 。使用别名可能无法按预期工作。

sudo systemctl start ssh.service

1.3 新建或打开项目

首先在远程服务器上新建或者打开一个项目文件,

注意该项目文件后期会与本地的项目文件进行同步

python虚拟环境可以使用之前的,或者自己新建一个。

这里需要记录下项目的路径,以及conda的python路径,在Linux系统下anaconda的虚拟环境一般会在当前用户目录下,例如:

/home/USER/.conda/envs/YOUR_CONDA_ENVIRONMENT/bin/pythonX


虚拟环境python路径


2. 本地远程连接

2.1 pycharm新建项目

在本地端使用PyCharm打开之前的项目,或者新建一个项目,Interpreter暂时选择本地的,
这里的 暂时表示 后续,我们会替换成服务器上的虚拟环境;

  • 使用⌘,打开Preferences菜单,新建一个python环境。

2.2 添加新的Interpreter

Preference --> Python Interpreter --> Add

2.3 登录服务器

  • 选择SSH Interpreter --> New server configuration

填写远程端的IP,Port,以及Username,点击Next,输入远程用户登录密码。

  • 填写远程python路径,以及项目路径用于同步代码,点击Finish即可。

在本地就可以加载远程端python环境了。

2.4 设置文件同步映射

Tools --> Deployment --> Configuration

  • 填写远程端的ip地址,Type为SFTP模式,项目路径,完成点击确认。

  • 同步文件,可以使用快捷键,也可以右键后点击同步即可实现将本地端文件发送至远程端文件夹中,pycharm也会自动上传本地文件。


2.5 运行、调试远程代码


  • 同步文件后在本地端运python代码,可以看到是在远程环境下运行文件。

  • 调试,打断点也可以实现。


  • 远程python环境第一次新建之后,可以在Exist里找到,可以重复使用,每次只用修改映射的文件夹路径即可;
  • 远程调试在多线程、多进程可能会出现问题,pytorch代码时,worker尽量设置成0;
  • 可视化的脚本目前是支持OpenCV和Matplotlib可视化。

reference

https://zhuanlan.zhihu.com/p/265152953

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

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

相关文章

超声波原理的便携式明渠流量计

便携式明渠流量计是一款便携式的可随带随走的一款仪器,主要是用来和在线明渠流量计做液位和流量比对的一款比对装置。 仪器可自动每两分钟记录一次液位数据,连续记录6次,同时可以累计测量10分钟的流量数据,将其结果与现场在线明渠…

Angular改变组件中样式(两种方法)

项目中遇到修改组件样式的情况,搜了半天资料基本只有vue和react的方法,什么/deep/,v-deep统统不起效,崩溃! 所以这里总结一下Angular的方法。 angular中想引入组件并修改组件内样式,有两种方法。 文章目录 方法1&…

壹牛NFT数字艺术藏品数藏开源无加密

这个版本新增了不少功能,也修复了一些地方。 1.平台新增用户找回密码功能 2.平台新增短信注册(实名制功能) 3.平台新增主图后台添加功能 4.平台修复相关问题,系统高效运行 1、H5端与APP端在新UI完美适配 2、加入宝盒功能&am…

FL Studio21.2最新订阅版本更新升级(详细功能介绍)

好消息!FL Studio 21.2 在 10 月 26 日正式发布啦,它新增了 FL Cloud 在线采样库和 AI 音乐制作功能,还提供音乐分发到 Spotify、Apple Music 等主要音乐平台的服务。此外,还有新的音频分离功能、自定义波形颜色和新的合成器 Kepl…

下一代金融将呈现 7 项激动人心的金融科技创新

金融科技处于现代技术发展的前沿。随着金融科技领域价值超过 1790 亿美元,初创企业和创新者都在寻找金融和银行业的下一个重大事件。 本文讨论了 2024 年的 7 项金融科技创新。 其中一些创新建立在我们在金融行业看到的现有趋势的基础上,而另一些则是完…

学习ftp

文章目录 一、FTP介绍二、两种模式(主动模式和被动模式)三、FTP配置文件详解四、实际场景举例五、黑白名单六、网络限制 一、FTP介绍 1.FTP(File Transfer Protocol)是一种应用广泛且古老的互联网文件传输协议。 2.主要应用于互联…

vue项目中定制化音频展示,wavesurfer.js基本使用

效果图&#xff1a; wavesurfer是一个可定制的音频波形可视化&#xff0c;建立在Audio API和HTML5 Canvas之上。 基本使用&#xff1a; <body><script src"https://unpkg.com/wavesurfer.js"></script><div id"waveform"></di…

VMware ESXi和vCenter和vSphere关系是怎样的?

事实上&#xff0c;我们所说的vSphere并不是一个特定的软件。VMware vSphere是VMware的服务器虚拟化软件套件&#xff0c;它包括了许多软件组件&#xff0c;它们中的每一个都在vSphere环境中执行不同的功能。 VMware vSphere的两个核心组件就是VMware ESXi和VMware vCenter Se…

python接口自动化测试(八)-unittest-生成测试报告

用例的管理问题解决了后&#xff0c;接下来要考虑的就是报告我问题了&#xff0c;这里生成测试报告主要用到 HTMLTestRunner.py 这个模块&#xff0c;下面简单介绍一下如何使用&#xff1a; 一、下载HTMLTestRunner下载&#xff1a; 这个模块不能通过pip安装&#xff0c;只能…

ohos的代码同步以及添加自己的代码

首先我们需要获取到官方的repo工具&#xff0c;命令如下curl -s https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > ./repo&#xff0c;这里我们就拿到repo工具了&#xff0c;这个repo可以放任意地方&#xff0c;也可以放 /usr/local/bin/repo下&#xff0c;这样可以…

C++ 关键字

bool 取值 true和false&#xff0c;只有二者&#xff0c;C编译器会在赋值时将非0值转换为true&#xff0c;0转换为false ture 代表真值&#xff0c;编译器内部用1来表示 false 代表非真值&#xff0c;编译器内部用0来表示 空间 占用一个字节 多个bool变量定义在一起&a…

Power BI 傻瓜入门 13. 进入仪表板

本章内容包括&#xff1a; 配置仪表板将报表功能集成到仪表板中使用基于AI的功能增强仪表板体验基于仪表板规则定义警报 想象一下&#xff1a;图片和文本的混合体整齐地组织起来&#xff0c;就像一块美丽的画布。它告诉你组织中的一切都在顺利运行&#xff0c;但其中一个视觉…

Linux系统之部署Tale个人博客系统

Linux系统之部署Tale个人博客系统 一、Tale介绍1.1 Tale简介1.2 Tale特点 二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍 三、检查本地环境3.1 检查本地操作系统版本3.2 检查系统内核版本3.3 检查java版本 四、部署Tale个人博客系统4.1 下载Tale源码4.2 查看Tale源码目录4…

干货 | 深度多元时序模型在携程关键指标预测场景下的探索应用

作者简介 doublering&#xff0c;携程高级算法工程师&#xff0c;关注自然语言处理、LLMs、时序预测等领域。 一、背景 互联网行业中&#xff0c;有许多关键指标直接影响公司未来的规划与决策&#xff0c;比如流量、订单量、销售额等。有效地预测这些关键指标能够辅助公司提前做…

C++类模板再学习

之前已经学习了C类模板&#xff1b;类模板的写法和一般类的写法有很大的差别&#xff1b;不容易熟悉&#xff1b;下面再做一遍&#xff1b; 做一个椭圆类&#xff0c;成员有长轴长度和短轴长度&#xff1b; // ellipse.h: interface for the ellipse class. // //#if !define…

Android开发知识

文章目录 HTTPHTTP到底是什么HTTP的工作方式URL ->HTTP报文List itemHTTP的工作方式请求报文格式&#xff1a;Request响应报文格式&#xff1a;ResponseHTTP的请求方法状态码HeaderHostContent-TypeContent-LengthTransfer: chunked (分块传输编码 ChunkedTransfer Encoding…

双向链表的初始化、插入、删除

双向链表的初始化 双向链表的插入 双向链表的删除 我们可以看看这一题循环双向链表的题目 王道p40 17.设计一个算法用于判断带头结点的循环双链表是否对称&#xff08;c语言代码实现&#xff09;_认真敲代码的小火龙的博客-CSDN博客https://blog.csdn.net/m0_46702681/article…

Shiro整合EhCache

缓存工具EhCache EhCache是一种广泛使用的开源Java分布式缓存。主要面向通用缓存,Java EE和轻量级容器。可以和大部分Java项目无缝整合&#xff0c;例如&#xff1a;Hibernate中的缓存就是基于EhCache实现的。EhCache支持内存和磁盘存储&#xff0c;默认存储在内存中&#xff…

netcore webapi action 同时支持 get 和 post 请求

最近在项目开发过程中&#xff0c;有个别接口需要同时支持GET和POST请求&#xff0c;经过一番测试&#xff0c;貌似NetCore只能接收指定的FromBody、FromQuery等参数&#xff0c;经过一番查找后发现文章&#xff1a;为ASP.NET Core实现一个自适应ModelBinder&#xff0c;让Acti…

HackTheBox-Starting Point--Tier 1---Sequel

文章目录 一 题目二 实验过程 一 题目 Tags Vulnerability Assessment、Databases、MySQL、SQL、Reconnaissance、Weak Credentials译文&#xff1a;漏洞评估、数据库、MYSQL、SQL、侦察、凭证薄弱Connect To attack the target machine, you must be on the same network.C…