VScode远程连接服务器,Pycharm专业版下载及远程连接(深度学习远程篇)
Visual Code、PyCharm专业版,本地和远程交互。
远程连接需要用到SSH协议的技术,常用的代码编辑器vscode 和 pycharm都有此类功能。社区版的pycharm是免费的,但是社区版不支持ssh连接服务器,只有专业版才可以,需要破解或者学生身份申请专业版,下面记录一下自己所学,方便重新配置环境。
VsCode远程连接:
在基于前面环境配置好的前提下,直接官网下载最新的vs code,不需要配置环境变量。
1、然后你需要下几个插件:
打开vscode,找到最左边的
下一步是,分别搜索如下插件,并点击install,插件如下:
python(写python必备),
jupyter(在vs code中显示jupyter notebook而无需在网页启动,很高级),
remote development(远程连接,会附带一系列其他的远程插件),
Anaconda Extension Pack(我也不知道,但是你用anaconda的python肯定要的),
vs code -icons(文件图标会显示相应的文件类型,方便操作),另外写网页的话可以还要下Live Server,Open in defalut Brower,HTML CSS Support,auto rename tag,然后还有个插件 resource monitor,可以在vs code左下角看到cpu 和内存占用情况:
这里说一下jupyter插件:
只需要下jupyter插件就可以,然后你创建.ipynb文件就是jupyter编辑器了,在编辑这一方面,显然是比在浏览器中用jupyter更友好。
选择运行代码的虚拟环境:
按F1
在上面的搜索框搜索python解释器,选择你的虚拟环境下的python.exe。再在Vs code中间最上面输入python selected找到带你的虚拟环境名的python.exe解释器,确认运行环境,然后你就可以在本地打开某个文件夹创建py文件写python代码运行了,如果不进行远程连接,这里vscode配置就结束了。
vsocde远程连接配置
上面安装的vscode插件中,下了个remote development插件就会附带自动下一堆的插件。可以在自己的插件中,看看有没有如下的这些,没有就自己手动点击下一下:
,下好了之后左边会多一个远程图标:
然后你点击一下、就到了下面这里,看到下面这个ssh的右边设置,点击它
然后让你输入,ssh 进行连接命令,其中ip也可以域名:
ssh username@ip
(这个输入提示中的-A ,是代理本地拥有的私钥的意思。你如果把公钥放到ssh服务器的authorized_keys文件中,那么任何本机只要拥有你的私钥,然后再加上知道你放的服务器的用户名和地址,就能直接连接那台ssh服务器。
这里代理之后,让连接的服务器拥有更大权限,它不仅被我连,还能拥有连接 我本地机在其他放了公钥的机器 的连接权力(可以获取的本地的所有私钥)。如果连接的服务器被攻击,这对其他服务器还是有隐患的,毕竟代理之后,我远程的服务器访问其他服务器也不需要密码了)
点击,配置用户名信息
写入机器的信息:(这里需要说明,不加 IdentityFile 这一行是可以的,就可以直接用了。连接的时候会要求你输入登录密码,输入即可远程访问服务器文件了。
但是缺点是很频繁的输入密码,有时候经常断开很麻烦,于是需要将本地机器的ssh的公钥(也即id_rsa.pub中的那行内容。windows一般路径是在C:\Users\用户名.ssh\id_rsa.pub)加入到服务器的~/.ssh/authorized_keys文件中,如果服务器主目录下没有.ssh文件的话,你自己在主目录下mkdir .ssh创建一个.ssh文件夹,chmod 700 .ssh给他赋予权限,再vi .ssh/authorized_keys创建并编辑文件,将id_rsa.pub中的那行内容添加进去,保存退出即可。
然后也会有两个问题,有可能服务器是刚装的机器,没有ssh服务,下载ssh命令sudo apt-get install openssh-server,开启ssh服务 sudo /etc/init.d/ssh start;另外一个问题是本地的windows没有ssh,解决方法是去git的官网下载windows的git,里面有支持ssh的底层服务,下载最后你只需要在cmd中或者git的shell中执行命令:ssh-keygen -t rsa -b 4096 -C “your_email@example.com”,就能在C盘的ssh目录下,生成一对密钥了,找到其中的pub公钥添加到服务器的authorized_keys文件中即可。
更过的密钥生成的信息可以看这篇文章:各平台密钥生成
按ctrl + s保存即可。
然后左边远程连接,就会加载你的服务器信息了,或者关掉vscode重开,再点开remote图标就能显示你的机器了
点击当前页面连接,或者开启新的窗口连接都可以。
然后把欢迎页面关掉,左上角File->openfolder
就能打开你在服务器中git clone 下来的代码了
右下角可以选择python运行环境
或者按F1也会跳出来一些操作选项,你可以点击选择解释器
如果你发现右下角没有选择,或者按F1也没有Select Interpret选项,就去看看插件,有没有下载python插件,插件的下载和使用是本地和远程分开的,下载并开启插件在远程服务中的使用即可。
这就可以写代码,改代码,跑代码了,然后有时候输出控制台会消失,其实没消失,只是隐藏在最下面,将它拉上来就可以了。
另外,再记录一下debug,我好像不太喜欢debug,一直都是习惯手动print()
这是远程调试的一篇论文,供参考。
接下来说一下Vscode中的debug几个按钮,记录一下:
开启debug
注意的是上面的那几个调试按键
然后注意这几个:
第一个播放一样的continue是到下一个断点,
第二个旋转一样的step over是一行一行的走,包括第一层函数,但是函数之内的函数他就不会走了,除非你用第三个step in,提前在第一层函数运行前点他,然后在第一层函数里面一直点3,step in就会进到嵌套函数里面,真正的做到顺序运行,
然后第四个step over就是跳过一个函数,比如a函数里面有执行b ,c函数,他就跳过b,到c,然后再从c到a外面那个主函数,每点一下就是执行一个函数的量。
PyCharm远程连接开发:
PyCharm远程连接开发:
下面来说说在拥有GPU的情况下,怎么在本地连接服务器:介于pycharm 社区版本不提供ssh连接。
1、科学软件
https://mp.weixin.qq.com/s/V97XrfH0_vj4VIfcSb9S7Q,目前有效。
2、支持正版,还有一个办法是在jetbrains官网去要一个学生教育包,高校学生老师可以,但是要审核,学生一年申请一次,申请成功jetbrains的所有软件即可使用过。需要学生证照片。方法是直接进入这里:
jetbrains账号申请
但是需要注意!你得先在这个网站注册jetbrains账号,但是不要用自己的学生邮箱,你在申请的时候再填自己的学生邮箱去认证审核,表单选择官方文件,审核大概一周左右。
然后上面的电子邮箱填自己的学生电子邮箱,带edu.cn的那种,证件我上传的是饭卡的照片。
然后大概一个星期,就可以在学生邮箱收到:
Hi XX,
Congratulations! Your JetBrains Educational Pack has been confirmed.
Please link your free license to a new or an existing JetBrains Account. You will need to use this account whenever you want to access JetBrains tools.
Get started by learning basic shortcuts and essential features from right inside IntelliJ IDEA and other JetBrains IDEs with the IDE Features Trainer plugin.
In addition to your Educational Pack, we provide all new users with an extended 3-month free trial at JetBrains Academy, our hands-on platform for learning to program. Find out more details and start your extended trial.
If you have any questions, please email us and we will be glad to help.
Kind Regards,
The JetBrains team
www.jetbrains.com
The Drive to Develop
然后应该是用邮箱即可使用所有jetbrains的产品。
————————————————————————————————
pycharm专业版 下好之后,先不谈远程。讲在本地创建项目运行。
要在pycharm中导入先新建项目,才可以在pycharm中方便的编码
选择编译环境为conda中的那个你创建好的
如果没有的话,你就需要去anaconda目录中找到evns目录下的那个环境中的python路径,选中它,如下图
也可以在pycharm的控制台写代码(可能比较方便观察每一步的变量值变化):
对于已经打开的项目,可以在file–setting–python interpreter里面找到并更换python解释器。
然后远程连接方法是tool - deploment-configuration-±sptf-填写服务器信息:
上面写了123步骤的图,这会在pycahrm的任何项目使用中,都默认保存了一个ssh连接选项供你选择。
这上面的另外两张图就是创建一个远程文件管理项目,然后将这个ssh连接包含进去了,因为同步毕竟是基于两台主机的ssh,然后设置这个远程管理项目需要映射文件夹,这里面的映射是为了方便文件下载与上传的同步的。我个人觉得尽量本地这边的文件夹为空的,或者远程的文件夹为空比较好,就是映射的文件夹中一边空一边不空。然后绑定映射后从那边的文件夹download下来或者upload上去,然后提示会覆盖,选择yes就可以了,这样会避免歧义,而且选择yse覆盖的话,就是远程有你这边没有的文件都会备份过来。
然后刚开始,这里面只是说你可以本地或者远程改变同步代码,但是你的运行环境,还是本地的。这样做的话也就是相当于在服务器上备份了文件一样,好像意义不大。
为了使用远程的GPU资源,也就需要让远程服务器上的anaconda创建的虚拟环境中的python.exe来运行我们的代码,因为本地是无法直接调用远程主机的GPU,cpu资源的,目前还没出现那么高级的本地操作远程功能。其原理就是说本地项目这边运行前选择interpreter的时候,不用本地的虚拟环境的python.exe,而是用远程的某个虚拟环境中的python解释器,然后远程运行完之后将运行的结果远距离传输回来。
这里有一个地方很模糊,就是创建ssh远程解释器的时候,需要制定映射目录,为了避免麻烦和歧义,尽量让两边映射文件夹其跟上面设置的一样。也即这两个地方一样。
如果你没有设置远程同步文件夹,远程主机会将我的代码文件直接复制到远程某个文件夹,跟这个文件夹同步,大概是在/tmp/Pycharm…406…之类的命名,然后运行完会返回来结果。而这个/tmp/Pycharm…406是随机生成的名字。就是在你选择远程python解释器运行的的时候,他自己会服务器上创建这个文件夹。
另外,来回切换本地或者远程解释器都没问题,但是要记得自己之前创建的远程服务器名称,因为这个远程服务器绑定了哪两个文件夹,切回来的时候用错别的远程解释器,他就随机在/tmp/文件夹下生成一个目录给你同步了,这样会乱。
这其实就是一个git同步系统,只不过目前我还不了解版本控制。
这里有个自动上传设置,勾选之后。不管是创建文件同步,还是修改文件,你在本地改变的东西,都会自动推送到远程。远方同名的文件都会被更改。
远程连接同步与git类似。但是远程文件变更,你需要download下来,空文件夹不会被download下来,你download的时候记得慎重选yes,得看清楚文件夹是不是你要改变的。
而远程多余的文件夹会无条件download下来。
远程连接就记录到这里,感觉挺好用的。
相关文章:

VScode远程连接服务器,Pycharm专业版下载及远程连接(深度学习远程篇)
Visual Code、PyCharm专业版,本地和远程交互。 远程连接需要用到SSH协议的技术,常用的代码编辑器vscode 和 pycharm都有此类功能。社区版的pycharm是免费的,但是社区版不支持ssh连接服务器,只有专业版才可以,需要破解…...
Vue2和Vue3组件间通信方式汇总(3)------$bus
组件间通信方式是前端必不可少的知识点,前端开发经常会遇到组件间通信的情况,而且也是前端开发面试常问的知识点之一。接下来开始组件间通信方式第三弹------$bus,并讲讲分别在Vue2、Vue3中的表现。 Vue2Vue3组件间通信方式汇总(1)…...

PyTorch加载数据以及Tensorboard的使用
一、PyTorch加载数据初认识 Dataset:提供一种方式去获取数据及其label 如何获取每一个数据及其label 总共有多少的数据 Dataloader:为后面的网络提供不同的数据形式 数据集 在编译器中导入Dataset from torch.utils.data import Dataset 可以在jupyter中查看Dataset官方文档&…...
TensorFlow是什么
TensorFlow是什么 Tensorflow是一个Google开发的第二代机器学习系统,克服了第一代系统DistBelief仅能开发神经网络算法、难以配置、依赖Google内部硬件等局限性,应用更加广泛,并且提高了灵活性和可移植性,速度和扩展性也有了大幅…...

docker-compose 安装Sonar并集成gitlab
文章目录 1. 前置条件2. 编写docker-compose-sonar.yml文件3. 集成 gitlab4. Sonar Login with GitLab 1. 前置条件 安装docker-compose 安装docker 创建容器运行的特有网络 创建挂载目录 2. 编写docker-compose-sonar.yml文件 version: "3" services:sonar-postgre…...
支付平台在选择服务器租用时要注意什么?
如果要建设一个支付平台的话要进行服务器租用,一旦涉及到钱的方面就必须要顾虑到多方面,这样才能保证安全性,今天小编就给大家讲一讲要注意什么呢? 1、带宽:带宽是业务稳定性的直接因素,只有带宽充足,这样…...
IDEA2018升级2023,lombok插件不兼容导致get/set方法无法使用
1、问题 最近了解到一款叫CodeGeeX 的智能编程助手,想要试用一下,但是IDEA2018版本太低了,没有CodeGeeX插件,于是打算将IDEA升级到2023.2.5版本,具体升级过程略过,升级完成后,启动项目…...
企业微信服务商代开发模式获取授权企业的客户信息
服务商代开发素材: 服务商可信ip 企业微信认证 测试时不用再次创建一个企业微信,可以用当前的企业微信作为授权企业使用一、创建代开发应用模板 1,代开发模板回调URL配置 参考 注意:保存代开发应用模板时的corpId是服务商的企业…...
库存管理方法有哪些
库存管理是工作中一个离不开的话题,不管是仓管还是业务员都或多或少接触过库存管理方面的工作,例如:进货、销售、库存盘点等等这些都属于库存管理的范筹,那么库存管理方法有哪些?用哪种方法管理库存比较好,…...

数字化车间推动制造业生产创新
一、数字化车间应用场景 1:资源智能化管理 数字化车间通过搭建智能化的设备监测系统,实时采集和监控设备的运行状态和生产数据,对设备进行实时管理和维护,降低故障率和维修成本。同时,通过对生产过程中的数据采集和分…...

Linux的安装及管理程序
一、如何在linux安装卸载软件 1. 编译安装 灵活性较高 难度较大 可以安装较新的版本 2. rpm安装(redhat) linux 包安装 查软件信息:是否安装,文件列表 rpm 软件名 3. yum yum是RPM升级版本,解决rpm的弊端 安装软件 首…...

c语言-表达式求值
目录 前言一、隐式类型转换1.1 整型提升 二、算术转换三、操作符的属性四、问题表达式总结 前言 表达式求值的顺序一部分由操作符的优先级和结合性决定。 有些表达式的操作数在求值的过程中可能需要转换为其他类型 一、隐式类型转换 隐式类型转换是在编译器自动进行的类型转换…...

小型洗衣机哪个牌子质量好?口碑最好的四款小型洗衣机推荐
随着科技的快速发展,现在的人们越来越注重自己的卫生问题,不仅在吃上面会注重卫生问题,在用的上面也会更加严格要求,而衣服做为我们最贴身的东西,我们对它的要求也会更加高,所以最近这几年较火爆的无疑是内…...

springCould中的Ribbon-从小白开始【5】
目录 1.什么是Ribbo❤️❤️❤️ 2.eureka自带Ribbon ❤️❤️❤️ 3. RestTemplate❤️❤️❤️ 4.IRule❤️❤️❤️ 5.负载均衡算法❤️❤️❤️ 1.什么是Ribbo 1.Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端,负载均衡的工具。2.主要功能是提供客户端的软件…...

持续集成交付CICD:Jira 发布流水线
目录 一、实验 1.环境 2.GitLab 查看项目 3.Jira 远程触发 Jenkins 实现合并 GitLab 分支 4.K8S master节点操作 5.Jira 发布流水线 一、实验 1.环境 (1)主机 表1 主机 主机架构版本IP备注master1K8S master节点1.20.6192.168.204.180 jenkins…...

JuiceSSH结合内网穿透实现公网远程访问本地Linux虚拟机
文章目录 1. Linux安装cpolar2. 创建公网SSH连接地址3. JuiceSSH公网远程连接4. 固定连接SSH公网地址5. SSH固定地址连接测试 处于内网的虚拟机如何被外网访问呢?如何手机就能访问虚拟机呢? cpolarJuiceSSH 实现手机端远程连接Linux虚拟机(内网穿透,手机端连接Linux虚拟机) …...

使用 pytest.ini 文件控制输出 log 日志
一、前置说明 pytest.ini 文件中可以配置参数来控制 pytest 的运行行为,其存放路径要求与 conftest.py 一样。 项目根目录project_root/ ├── pytest.ini ├── tests/ │ └── test_demo.py以test开头的测试子目录project_root/ ├── tests/ │ ├── pytest.in…...

【Spring】SpringBoot 配置文件
文章目录 什么是配置文件SpringBoot配置文件配置文件快速入手配置文件的格式properties 配置文件说明properties 基本语法读取配置文件信息properties 配置格式缺点 yml 配置文件说明yml 基本语法使用 yml 连接数据库 yml 使用进阶yml 配置不同数据类型配置对象配置集合配置Map…...

Koordinator 支持 K8s 与 YARN 混部,小红书在离线混部实践分享
作者:索增增(小红书)、宋泽辉(小红书)、张佐玮(阿里云) 背景介绍 Koordinator 是一个开源项目,基于阿里巴巴在容器调度领域多年累积的经验孵化诞生,目前已经支持了 K8s…...
网游逆向分析与插件开发-游戏反调试功能的实现-项目需求与需求拆解
上一个专栏结束位置:网游逆向分析与插件开发-代码保护壳的优化-修改随机基址为固定基址-CSDN博客 上一个专栏是做了一个壳有了一定的保护,但是保护还是不够,最大的保护是根上把问题解决了,就是我不允许你对我进行调试,…...

MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题
在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件,这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下,实现高效测试与快速迭代?这一命题正考验着…...
【Java学习笔记】BigInteger 和 BigDecimal 类
BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点:传参类型必须是类对象 一、BigInteger 1. 作用:适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...

【免费数据】2005-2019年我国272个地级市的旅游竞争力多指标数据(33个指标)
旅游业是一个城市的重要产业构成。旅游竞争力是一个城市竞争力的重要构成部分。一个城市的旅游竞争力反映了其在旅游市场竞争中的比较优势。 今日我们分享的是2005-2019年我国272个地级市的旅游竞争力多指标数据!该数据集源自2025年4月发表于《地理学报》的论文成果…...

C++--string的模拟实现
一,引言 string的模拟实现是只对string对象中给的主要功能经行模拟实现,其目的是加强对string的底层了解,以便于在以后的学习或者工作中更加熟练的使用string。本文中的代码仅供参考并不唯一。 二,默认成员函数 string主要有三个成员变量,…...

UE5 音效系统
一.音效管理 音乐一般都是WAV,创建一个背景音乐类SoudClass,一个音效类SoundClass。所有的音乐都分为这两个类。再创建一个总音乐类,将上述两个作为它的子类。 接着我们创建一个音乐混合类SoundMix,将上述三个类翻入其中,通过它管理每个音乐…...

【工具教程】多个条形码识别用条码内容对图片重命名,批量PDF条形码识别后用条码内容批量改名,使用教程及注意事项
一、条形码识别改名使用教程 打开软件并选择处理模式:打开软件后,根据要处理的文件类型,选择 “图片识别模式” 或 “PDF 识别模式”。如果是处理包含条形码的 PDF 文件,就选择 “PDF 识别模式”;若是处理图片文件&…...