使用pycharm远程调试

使用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-main2. conda python environments path:
/home/yons/anaconda3/envs/torch2.1.0/bin/python3.83. Username:  whoami
yons
4. ip, ifconfig
inet 192.168.xx.xx
5. port:  use default22

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.mzph.cn/news/120523.shtml

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

相关文章

Git总结

Git介绍 一、Git常用命令 添加、提交 git add 将文件从工作区添加到暂存区&#xff0c;表示git开始追踪文件&#xff0c;如果不想让git追踪了&#xff0c;可以使用 git rm --cached <file> 取消文件追踪&#xff0c;仅仅只代表追踪取消&#xff0c;工作区文件还是照…

4.1 数据库安全性概述

思维导图&#xff1a; 前言&#xff1a; - **第一章回顾**&#xff1a;数据库特点 - 统一的数据保护功能&#xff0c;确保数据安全、可靠、正确有效。 - 数据保护主要涵盖&#xff1a; 1. **数据的安全性**&#xff08;本章焦点&#xff09; 2. 数据的完整性&#xff08;第…

如何将数据库某列的值(如日期)作为表格的列名

如何将数据库某列的值&#xff08;如日期&#xff09;作为表格的列名 需求&#xff1a;前端需要展示如下的二维表格&#xff0c;其中表格的日期是数据库表里data的值&#xff0c;每行不同的值是表格里的字段值&#xff0c;也就是需要将表里的数据行转列&#xff0c;列转行&…

vue手动拖入和导入excel模版

1.列表按钮 <el-button click“importExcel(scope.row.id)” size“small” type“text”>导入excel模版 2.按钮弹框 3.data定义数据 data () { return { projectId: ‘’, importDialogVisible: false, fileList: [], //手动上传 upload_file: ‘’, //导入excel模版…

设计模式思维导图

ProcessOn思维导图链接

性能测试工具:如何学习JMeter?

JMeter是一个广泛应用于Web应用程序性能测试与负载测试的开源负载测试工具&#xff0c;学习JMeter则可以协助软件测试工程师更好地进行自动化性能测试与负载测试&#xff0c;本文就来介绍下如何学习JMeter。 1. 应用场景 (1) Web应用程序、数据库服务器、FTP服务器、SOAP和RE…

移动应用买量越来越难,APP增长的新机遇在哪里?

近两年来&#xff0c;“买量越来越难”是移动互联网每逢年末的固定趋势&#xff0c;“内卷”对于每一个互联网运营人来说成为了越来越普遍的存在。 比如在游戏买量领域&#xff0c;一家厂商做出一个素材之后&#xff0c;很多家都会陆续跟进。其次&#xff0c;素材的生命周期下…

uniapp vue2、vue3 页面模板代码块设置

本文分享 uniapp vue2、vue3 页面模板代码块设置 设置路径 HBuilder X -> 工具 -> 代码块设置 -> vue代码块 -> 自定义代码块 如上图操作后在打开的 vue.json 文件的右侧“自定义代码块”中复制如下代码&#xff08;可全选替换也可添加到代码中&#xff09; 示…

将CSDN或Confluence文章转为微信公众号格式

最近在更公众号文章&#xff0c;苦于排版和格式&#xff0c;就找了一个比较方便的方法&#xff0c;简单易用&#xff0c;排版也不错。 文章提取 有的文章是已经发布在其它平台了&#xff0c;比如CSDN或Confluence&#xff0c;可以使用飞书剪存方便的将文章提取出来&#xff0…

Android Studio模拟器/虚拟设备连接互联网的方法

如图&#xff0c;无线、网络都无法联网 找到本机的DNS 找到emu-launch-params.txt&#xff0c;添加DNS -dns-server 192.168.124.1 重启虚拟机&#xff0c;关闭无线

[AutoSAR系列] 1.3 AutoSar 架构

依AutoSAR及经验辛苦整理&#xff0c;原创保护&#xff0c;禁止转载。 专栏 《深入浅出AutoSAR》 1. 整体架构 ​ 图片来源&#xff1a; AutoSar 官网 从官往图中可以看出autosar作为汽车ECU软件架构&#xff0c;是通过分层来实现软硬件隔离。就像大多数操作系统一样&#xff…

网络安全—自学笔记

1.网络安全是什么 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 2.网络安全市场 一、是市场需求量高&#xff1b; 二、则是发展相对成熟…

Spring Boot中RedisTemplate的使用

当前Spring Boot的版本为2.7.6&#xff0c;在使用RedisTemplate之前我们需要在pom.xml中引入下述依赖&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId><vers…

基于SSM的幼儿园管理系统

基于SSM的幼儿园管理系统的设计与实现~ 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringSpringMVCMyBatis工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 登录界面 管理员界面 摘要 基于SSM&#xff08;Spring、Spring MVC、MyBatis&#…

IDEA: 自用主题及字体搭配推荐

文章目录 1. 字体设置推荐2. 主题推荐3. Rainbow Brackets(彩虹括号)4. 设置背景图片 下面是我的 IDEA 主题和字体&#xff0c;它们的搭配效果如下&#xff1a; 1. 字体设置推荐 在使用 IntelliJ IDEA 进行编码和开发时&#xff0c;一个合适的字体设置可以提高你的工作效率和舒…

Fabric.js 图案笔刷

本文简介 带尬猴&#xff0c;我是德育处主任 Fabric.js 有图案画笔功能&#xff0c;这个功能可以简单理解成“刮刮卡”效果。 如果只是看 Fabric.js 文档可能还不太明白 图案画笔 PatternBrush 是如何使用。 本文将讲解如何配置这款画笔的基础属性。 图案画笔&#xff08;笔…

Kafka入门05——基础知识

目录 副本数据同步原理 HW和LEO的更新流程 第一种情况 第二种情况 数据丢失的情况 解决方案 Leader副本的选举过程 日志清除策略和压缩策略 日志清除策略 日志压缩策略 Kafka存储手段 零拷贝&#xff08;Zero-Copy&#xff09; 页缓存&#xff08;Page Cache&…

关于JAVA中字节码文件版本号、产品版本号及开发版本号的关系

目录 关于字节码版本对应关系清单关于字节码格式说明的资料关于这些版本号 关于字节码版本 以二进制打开字节码文件&#xff1a; 如上图中第5-8标识&#xff08;圈起来的&#xff09;的即字节码版本号 十六进制&#xff1a; 34 十进制&#xff1a; 52 jdk 8 对应关系清单 …

四、【常用的几种抠图方式三】

文章目录 钢笔工具抠图通道抠图蒙版抠图色彩范围抠图 钢笔工具抠图 钢笔工具抠图适合边缘比较硬的主体对象&#xff0c;因此适合需要精修而且边缘比较生硬的图片&#xff0c;钢笔工具操作比较多&#xff0c;对一般的新手来讲不是很友好&#xff0c;想要使用好钢笔工具需要经常…

5G与医疗:开启医疗技术的新篇章

5G与医疗&#xff1a;开启医疗技术的新篇章 随着5G技术的快速发展和普及&#xff0c;它已经在医疗领域产生了深远的影响。5G技术为医疗行业提供了更高效、更准确、更及时的通信方式&#xff0c;从而改变了医疗服务的模式和患者的体验。本文将探讨5G技术在医疗领域的应用场景、优…