使用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.hqwc.cn/news/155335.html

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

相关文章

【c++|opencv】二、灰度变换和空间滤波---3.均值滤波

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 均值滤波 1. 均值滤波 #include <iostream> #include <opencv2/opencv.hpp> #include"Salt.h"using namespace cv; using names…

Thread

Thread 线程启动线程第一种创建线程线程的第二种创建方式使用匿名内部类完成线程的两种创建 Thread API线程的优先级线程提供的静态方法守护线程用户线程和守护线程的区别体现在进程结束时 多线并发安全问题同步块 线程 启动线程 启动线程:调用线程的start方法,而不是直接调用…

SQL注入思路扩展

目录 一、资产搜集 二、开始sql注入常规流程 三、sqlmap验证 总结&#xff1a;测试sql注入的时候不要只局限于明文传输&#xff0c;也要注意编码或者加密后的值。 还没看够&#xff1f;欢迎关注&#xff0c;带你走进黑客世界&#xff0c;下面也有免费的靶场视频 一、资产搜…

C++中vec.size()-1的坑

问题描述&#xff1a;如下代码&#xff0c; #include <iostream> #include <vector>using namespace std;int main() {vector<int> vec {};for (int i 0; i < vec.size() - 1; i) {cout << "i " << i << ", vec[i] …

Vue Router使用VueUse更改标签页名称的工具函数

进入正题 安装 npm i vueuse/core or pnpm i vueuse/core or yarn add vueuse/corerouter/helper.js import { useTitle } from vueuse/coreexport const usePageTitle (to) > {const projectTitle import.meta.env.VITE_APP_TITLE // 将可变名抽出到 .env 内配置cons…

建筑建材物料展示预约小程序的作用

建材物料在工程和家庭中的应用度非常高&#xff0c;涵盖服务与产品&#xff0c;如墙面翻新、刷墙、墙纸等&#xff0c;所谓专业事专业人做&#xff0c;因此建筑建材服务商家需要不断拓展客户进行产品/服务的销售。 而在市场拓展方面&#xff0c;由于当今主流需求者年轻化&…

OpenHarmony docker环境搭建所见的问题和解决

【摘要】OpenHarmony docker环境搭建需要一台安装Ubuntu的虚拟机&#xff0c;并且虚拟机中需要有VScode。 整个搭建流程请参考这篇博客&#xff1a;OpenHarmony docker环境搭建-云社区-华为云 (huaweicloud.com) 上篇博主是用Ubuntu的服务器进行环境搭建的&#xff0c;在使用VS…

通过shiro框架记录用户登录,登出及浏览器关闭日志

背景&#xff1a; 公司项目之前使用websocket记录用户登录登出日志及浏览器关闭记录用户登出日志&#xff0c;测试发现仍然存在问题&#xff0c; 问题一&#xff1a;当浏览器每次刷新时websocket其实是会断开重新连接的&#xff0c;因此刷新一下就触发记录登出的日志&#xff0…

高级工技能等级认定---网络设备安全

目录 一、DHCP 安全配置 二、SSH配置 三、标准ACL的配置 四、配置交换机端口安全 五、三层交换和ACL的配置 一、DHCP 安全配置 配置要求&#xff1a; 1.给交换机配置enable密码. 2.在交换机上创建VLAN 100&#xff0c;将F0/1-3口改为Access口&#xff0c;并加入到VLAN …

nvm安装步骤

注意事项 不要安装任何版本的node.js&#xff0c;有的话卸载干净&#xff01;注意&#xff1a;要卸载干净了&#xff01; 安装步骤&#xff1a; nvm下载 点击exe文件安装 安装目录选择&#xff1a;D:\NVM 下一步创建nodejs文件放在D:\NVM 下&#xff0c;然后一直next到最后 …

Specializing Smaller Language Models towards Multi-Step Reasoning论文精读

0 Abstract 普遍认为&#xff0c;LLM涌现出来的few-shot learning能力是超大参数模型独有的&#xff08;>100B&#xff09;【emergent abilities】&#xff1b;作者认为&#xff0c;小模型&#xff08;<10B&#xff09;可以将这些能力从大模型&#xff08;>100B&…

学习笔记|单样本t检验|P值|两独立样本均数T检验|规范表达|《小白爱上SPSS》课程:SPSS第五讲 | 两独立样本均数T检验,你会了吗?

目录 学习目的软件版本原始文档P值是假设检验的终极者两独立样本均数T检验一、实战案例二、案例解析三、统计策略四、SPSS操作1、正态性检验2、T检验&#xff08;独立样本T检验&#xff09;结果 五、结果解读Tips&#xff1a;补充知识 六、规范报告1、规范表格2、规范文字 注意…