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博客 上一个专栏是做了一个壳有了一定的保护,但是保护还是不够,最大的保护是根上把问题解决了,就是我不允许你对我进行调试,…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
postgresql|数据库|只读用户的创建和删除(备忘)
CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍
文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结: 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析: 实际业务去理解体会统一注…...
工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配
AI3D视觉的工业赋能者 迁移科技成立于2017年,作为行业领先的3D工业相机及视觉系统供应商,累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成,通过稳定、易用、高回报的AI3D视觉系统,为汽车、新能源、金属制造等行…...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...

如何理解 IP 数据报中的 TTL?
目录 前言理解 前言 面试灵魂一问:说说对 IP 数据报中 TTL 的理解?我们都知道,IP 数据报由首部和数据两部分组成,首部又分为两部分:固定部分和可变部分,共占 20 字节,而即将讨论的 TTL 就位于首…...