如何使用固定公网地址远程连接Python编译器并将运行结果返回到Pycharm

文章目录

    • 一、前期准备
      • 1. 检查IDE版本是否支持
      • 2. 服务器需要开通SSH服务
    • 二、Pycharm本地链接服务器测试
      • 1. 配置服务器python解释器
    • 三、使用内网穿透实现异地链接服务器开发
      • 1. 服务器安装Cpolar
      • 2. 创建远程连接公网地址
    • 四、使用固定TCP地址远程开发

本文主要介绍如何使用Pycharm进行远程开发,并实现在家远程与公司服务器资源同步。

新版本Jetbrains系列开发IDE(IntelliJ IDEAPyCharmGoLand)等都支持远程使用服务器编译,并且可以通过SFTP同步本地与服务器项目代码

这样做的好处是**我们只要连接上服务器就能开始干活儿,不用折腾环境,**不占用个人笔记本资源,最重要的是不用忍受笔记本的烂风扇噪音。

接下来我来教大家如何配置实现在家远程利用公司服务器资源开发

image-20231212102555634

一、前期准备

1. 检查IDE版本是否支持

本文以Pycharm举例,IntelliJ IDEA操作方式相同。

确认您安装的PyCharm是社区版还是专业版,只有专业版才支持远程开发功能。

在这里查看软件版本:工具栏help->about

image-20231208150235397

显示 Professional Edition,即为专业版。

2. 服务器需要开通SSH服务

执行:

sudo systemctl status sshd 

image-20231208150906432

active表示已开通

二、Pycharm本地链接服务器测试

1. 配置服务器python解释器

找到工具栏的 [File] -> [Settings],打开以下设置弹窗,搜索interpreter找到[Python interpreter]设置项

image-20231208153546354

点击Add Interpreter,选择On SSH

image-20231208153729790

将实例SSH指令中的Host、Port与Username进行匹配和填写(Username均为root,Host和Port查看自己实例的SSH指令)

image-20231208155245563

输入服务器登陆密码:

image-20231208155311697

继续下一步,直到看到 completed 字样,再点下一步。

image-20231208160307404

选择System Interpreter(选择服务器的代码解释器),选择服务器的远程Python解释器路径(如果您安装了其他Python或虚拟环境则根据实际情况填写)

image-20231208160812489

配置项目路径,意思是本地项目和远程实例中的哪个目录进行关联,这里设置为我演示项目的目录(不建议使用默认的/tmp目录)

选择好自定义同步项目文件夹,点击文件夹图标:

image-20231208160849772

弹窗内左侧为本地项目路径,右侧为服务器项目路径,可以自行修改:

image-20231208160947156

我修改的远程路径为:/root/projects/pythonlearn,点 ok

image-20231208162225503

检查一下远程服务器的解释器和同步路径,点 Create

image-20231208162318367

如果配置均无误PyCharm会配置一下,之后我们在本机项目最下边可以看到 SFTP 字样和服务器信息,说明我们的配置成功,此时我们不光使用服务器编译代码,项目还能与服务器同步。

我链接服务器后同步出的数据如下:

image-20231208164704600

此处我们在本地测试成功,但是这样配置的意义就是可以实现异地使用服务器的资源开发,这里我们**需要将SSH时使用的本地IP映射为公网TCP地址,才能实现异地开发。**这样我们只需本地编写代码,远程到服务器编译并同步代码。

三、使用内网穿透实现异地链接服务器开发

1. 服务器安装Cpolar

本地测试完成后,我们需要在服务器上安装cpolar内网穿透工具,通过cpolar 转发本地端口映射的公网地址,我们可以很容易实现远程访问。下面是安装cpolar步骤:

cpolar官网地址: https://www.cpolar.com

  • 使用一键脚本安装命令
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
  • 向系统添加服务
sudo systemctl enable cpolar
  • 启动cpolar服务
sudo systemctl start cpolar

cpolar安装成功后,在外部浏览器上访问Linux 的9200端口即:【http://服务器的局域网ip:9200】,使用cpolar账号登录,登录后即可看到cpolar web 配置界面,结下来在web 管理界面配置即可

image-20230831171159175

Ubuntu18及Centos7之前的系统,需要使用手动安装Cpolar,详见:

Linux手动安装Cpolar方法 - cpolar 极点云

2. 创建远程连接公网地址

登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:

image-20231208170230024

  • 隧道名称:可自定义,注意不要与已有的隧道名称重复
  • 协议:tcp
  • 本地地址:22 (本地ssh默认端口)
  • 域名类型:临时随机TCP端口
  • 地区:选择China

点击创建

创建成功后,打开左侧在线隧道列表,查看刚刚创建隧道后生成的tcp地址,这个地址就是公网连接地址,接下来使用这个地址:1.tcp.cpolar.cn:20747 ,替换我们的本地地址。

image-20231211140133059

我们再次回到编译器设置界面, 点击Add Interpreter,选择On SSH

image-20231208153729790

找到[Python interpreter]设置项,选择Existing,修改Python编译器地址:

image-20231211142344417

选择后边是 agent 这个 sever选项

image-20231211142404132

点 管理

image-20231211142422538

修改本地地址为公网TCP地址,修改端口号。

image-20231211142701174

修改为:

image-20231211180151736

点击Apply部署,点 ok,自动跳转为:

image-20231211180230250

点 ok

image-20231211142842310

输入服务器登陆密码:

image-20231211142856221

配置完毕,点Next

image-20231211142934023

我们可以看到已经链接成功,可以看到编译器路径和项目保存路径,点 create:

image-20231211143001964

等待一会加载:

image-20231211143014104

此时Python编译器处已经显示我们配置的公网地址,点Apply,就配置完成。

image-20231211143034013

项目页面左下角已经显示我们编译器的路径,此时我们编译代码使用的就是服务器编译器,运行完毕后结果返回至Pycharm。

image-20231211143120521

小结

为了方便演示,我们在前述过程中使用了Cpolar生成的TCP地址隧道,其公网地址是随机生成的。

这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址是随机生成,这个地址在24小时内会发生随机变化,更适合于临时使用。

我一般会使用固定TCP域名,原因是我希望每天打开开发工具直接上手工作,不用这配置一下那配置一下,接下来我教大家如何固定TCP地址:

四、使用固定TCP地址远程开发

访问官网控制面板,保留TCP:

Cpolar - secure introspectable tunnels to localhost

保留一个固定tcp地址,登录cpolar官网,点击左侧的预留,找到保留的tcp地址,为远程服务器连接保留一个固定tcp地址:

  • 地区:选择China VIP / China VIP Top
  • 描述:即备注,可自定义

点击保留

image-20231211152407635

地址保留成功后,系统会生成相应的固定公网地址,将其复制下来:

image-20231211153724134

打开cpolar web ui管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到我们上面创建的TCP隧道,点击编辑

image-20231211152929870

选择 固定TCP端口:

image-20231211153813707

修改隧道信息,将保留成功的固定tcp地址配置到隧道中

  • 端口类型:修改为固定TCP端口
  • 预留的tcp地址:复制粘贴官网保留成功的地址

点击更新

隧道更新成功后,点击左侧仪表盘的状态——在线隧道列表,可以看到公网地址已经更新成为了固定TCP地址。

image-20231211162838302

我们仍然重复之前的操作,将原来的随机TCP地址替换为固定TCP地址:

找到工具栏的 [File] -> [Settings],选择Existing,修改Python编译器地址:

image-20231211163234901

按照如下方法填写我们固定好的TCP地址和端口号:

image-20231211163325400

点击Apply后,点 ok

image-20231211173817321

点 Next

image-20231211173840278

点 ok

image-20231211173852245

输入服务器登陆密码

image-20231211173905495

配置完毕,点 Next。

image-20231211173933807

这里我们看到,已经自动查到我们服务器中编译器路径和项目保存路径;点 create。

image-20231211174041679

点Apply部署,点 ok

image-20231211174110219

此时我们可以看到左下角已经显示使用我们固定地址的Python编译器:

image-20231211174136291

本教程最终效果已经达成。我们已经能够使用永久固定地址来远程操作服务器中的Python编译器并将运行结果返回到Pycharm,代码修改还能通过这个TCP地址同步,这样我们就可在任意地点远程使用服务器的强大算力来编译各种复杂的项目而不占用本地资源!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

K8S Pod状态为“被驱逐(evicted)”的解决方法

文章目录 驱逐原因问题复现解决方案 在Kubernetes中,pod是最小的调度单元。当Pod无法在所分配的节点上正常运行时,它可能会被驱逐(evicted)。这种情况可能是由多种原因引起,比如节点资源不足、Pod超出了所分配的资源限制、镜像拉取失败等。 …

哈希表(hash_table) 哈希存储 算法相关知识 稳定性 时间复杂度

哈希存储(散列存储) 为了快速定位数据 哈希表 哈希冲突 / 哈希矛盾 关键字不一样,但是映射之后结果一样 如何避免 哈希矛盾? 1、重新设计哈希函数,尽可能均匀散列分布在哈希表 2、开放定址法:向下寻找未存储的位置进行存放数…

《Invariant Feature Learning for Generalized Long-Tailed Classification》阅读笔记

论文标题 《Invariant Feature Learning for Generalized Long-Tailed Classification》 广义长尾分类的不变特征学习 作者 Kaihua Tang、Mingyuan Tao、Jiaxin Qi、Zhenguang Liu 和 Hanwang Zhang 来自南洋理工大学、阿里达摩院和浙江大学 初读 摘要 属性不平衡&#…

基于 FFmpeg 和 SDL 的音视频同步播放器

基于 FFmpeg 和 SDL 的音视频同步播放器 基于 FFmpeg 和 SDL 的音视频同步播放器前置知识音视频同步简介复习DTS、PTS和时间基 程序框架主线程解复用线程音频解码播放线程视频解码播放线程 音视频同步逻辑源程序结果工程文件下载参考链接 基于 FFmpeg 和 SDL 的音视频同步播放器…

vue 元素拖动,复制,已复制元素可移动,快捷方便,已解决

注意:使用当前组件时,请先了解组件代码逻辑 下方组件根据自己的需求来更改响应的元素id,调整代码实现逻辑,这里不过多解释 import Vue from "vue";/*** 拖拽*/ Vue.directive("Drag", (el) > {const move…

MySQL---函数

目录 一、概述 二、字符串函数 三、数值函数 四、日期函数 五、流程函数 一、概述 函数 是指一段可以直接被另一段程序调用的程序或代码。 也就意味着,这一段程序或代码在MySQL 中 已经给我们提供了,我们要做的就是在合适的业务场景调用对应的函数完…

课堂练习:环境体验——Linux 文件操作命令

任务描述 第二个任务就是了解Linxu的文件查看命令,文件编辑基本命令。 相关知识 为了完成本关任务,你需要掌握: 1.文件查看命令。 2.文件编辑基本命令。 文件查看命令 我们要查看一些文本文件的内容时,要使用文本编辑器来查看…

vue3+ts白屏问题解决

文章目录 打开白屏解决方法可能出现问题使用base导致的使用baseUrl导致的 注意点vue3ts白屏问题知识分享 打开白屏 解决方法 在vue.config.js页面 添加publicPath:./, const { defineConfig } require(vue/cli-service)module.exports defineConfig({ transpileDependenci…

MATLAB:优化与规划问题

一、线性规划 % 线性规划(Linear programming, 简称LP) fcoff -[75 120 90 105]; % 目标函数系数向量 A [9 4 7 54 5 6 105 10 8 53 8 9 77 6 4 8]; % 约束不等式系数矩阵 b [3600 2900 3000 2800 2200]; % 约束不等式右端向量 Aeq []; % 约束等式系…

搭建本地局域网域名并配置本地的mqtt服务器

1. 第一步: 首先准备一台windows电脑,安装 Technitium DNS Server 链接如下: Technitium DNS Server | An Open Source DNS Server For Privacy & Security 启动 start 然后进入 http://localhost:5380/ 下载完成之后,需要…

数字三角形 Number Triangles

题目描述 观察下面的数字金字塔。 写一个程序来查找从最高点到底部任意处结束的路径,使路径经过数字的和最大。每一步可以走到左下方的点也可以到达右下方的点。 在上面的样例中,从 7 → 3 → 8 → 7 → 5 7 \to 3 \to 8 \to 7 \to 5 7→3→8→7→5 的…

【JAVAEE学习】探究Java中多线程的使用和重点及考点

˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如…

vue 内嵌第三方网页

需要将另一个系统嵌套到当前网页中 一、frame 方法一就是通过html的标签 iframe 实现网页中嵌入其他网站 标签属性 属性含义src嵌套的网页地址width设置嵌套网页的宽度,单位为像素height设置嵌套网页的高度,单位为像素frameborder控制嵌套的网页是否…

【CC工具箱1.2.5】更新_免费无套路,70+个工具

CC工具箱目前已经更新到1.2.5版本,完全免费无套路。 适用版本ArcGIS Pro 3.0及以上。 欢迎大家使用,反馈bug,以及提出需求和意见,时间和能力允许的话我会尽量满足要求。 如有关于工具的使用问题和需求建议,可以加下…

使用unplugin-auto-import页面不引入api飘红

解决方案:. tsconfig.json文件夹加上 {"compilerOptions": {"target": "ES2020","useDefineForClassFields": true,"module": "ESNext","lib": ["ES2020", "DOM", &q…

使用Python进行微服务架构的设计与实现【第159篇—微服务架构】

👽发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 使用Python进行微服务架构的设计与实现 在当今软件开发领域中,微服务架构已经成…

结构体,联合体,枚举( 1 )

目录 前言 1.结构体 1.1结构体的声明 1.2结构体变量的创建和初始化 1.3结构体成员的访问字符 1.4结构体的内存大小 1.4.1对齐规则 1.5结构体传参 前言 在编程的世界里,数据结构的选择对于程序的效率和可读性有着至关重要的影响。不同的数据结构适用于不同的…

华为WATCH 4是怎么监测我们健康的?真的有用吗?

最近,总听到身边的朋友说手表帮他们发现了不少健康的问题,所以我也想整一个来试试看。看了很多款手表后,发现华为WATCH 4还挺符合我的需求,它有一系列超实用的健康监测功能,可以说是随身的健康小助手。 先来说说心脏…

企微侧边栏开发(内部应用内嵌H5)

一、背景 公司的业务需要用企业微信和客户进行沟通,而客户的个人信息基本都存储在内部CRM系统中,对于销售来说需要一边看企微,一边去内部CRM系统查询,比较麻烦,希望能在企微增加一个侧边栏展示客户的详细信息&#xf…

电脑最高可以装多少内存?电脑内存怎么装?

大家好,我是来自兼容性之家的! 通常我们的家用电脑主机有8到16GB的运行内存。 极少数高端用户会使用32至64GB内存。 比较高端的工作站的内存在128GB左右。 同时,家用电脑的硬盘容量约为1TB。 那么你有没有想过一台电脑可以拥有的最大内存量…