Pycharm服务器配置python解释器并结合内网穿透实现公网远程开发

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
img

  • 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老
  • 导航
    • 檀越剑指大厂系列:全面总结 java 核心技术点,如集合,jvm,并发编程 redis,kafka,Spring,微服务,Netty 等
    • 常用开发工具系列:罗列常用的开发工具,如 IDEA,Mac,Alfred,electerm,Git,typora,apifox 等
    • 数据库系列:详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
    • 懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
    • 数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂

非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

博客目录

    • 一、前期准备
      • 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 地址同步,这样我们就可在任意地点远程使用服务器的强大算力来编译各种复杂的项目而不占用本地资源!

觉得有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

img

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

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

相关文章

spring boot3自定义注解+拦截器+Redis实现高并发接口限流

⛰️个人主页: 蒾酒 🔥系列专栏:《spring boot实战》 🌊山高路远,行路漫漫,终有归途 目录 写在前面 内容简介 实现思路 实现步骤 1.自定义限流注解 2.编写限流拦截器 3.注册拦截器 4.接口限流测试 写在前…

sql中使用了in直接卡死

项目场景: 最近在做数据迁移的工作,会员库有200多万数据,组织机构有4万数据。要把这些数据迁移到新系统的数据库中,开发新系统之前完全没考虑过数据量。当数据导入之后,页面就各种报错。。。。。。。。。。。。。。。…

外包干了8天,技术退步明显.......

先说一下自己的情况,大专生,19年通过校招进入杭州某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落! 而我已经在一个企业干了四年的功能测…

【ZZULIOJ】1009: 求平均分(Java)

目录 题目描述 输入 输出 样例输入 Copy 样例输出 Copy code 题目描述 已知某位学生的数学、英语和计算机课程的成绩,求该生三门课程的平均分。 输入 输入三个整数,数据之间由空格隔开。 输出 输出占一行,包含一个实数&#xff0c…

Redis命令介绍

一、redis启动: 本地启动:redis-cli 远程启动:redis-cli -h host -p port -a password Redis 连接命令 1 AUTH password 验证密码是否正确 2 ECHO message 打印字符串 3 PING 查看服务是否运行 4 QUIT 关闭当前连接 5 SELECT index 切换…

2024.3.28abc晚训题解

VJ晚训网址点击传送晚训 A题 比较巧的输入方式就是循环n&#xff0c;内层套一个循环7 #include<bits/stdc.h> using namespace std; int main(){int n;cin>>n;for(int i1;i<n;i){int ans0;for(int j1;j<7;j){int x;cin>>x;ansansx; }cout<<ans…

JUC内容概述

复习概念 Sleep和Wait的区别 Sleep是Thread的静态方法&#xff0c;wait是Object的方法&#xff0c;任何对象实例都可以使用sleep不会释放锁&#xff0c;他也不需要占用锁&#xff0c;暂停。wait会释放锁&#xff0c;但是调用他的前提是线程占有锁他们都可以被Interrupted方法…

SQLite数据库文件损坏的可能几种情况(一)

返回&#xff1a;SQLite—系列文章目录 上一篇&#xff1a;SQLiteC/C接口详细介绍sqlite3_stmt类&#xff08;十三&#xff09; 下一篇&#xff1a;SQLite使用的临时文件&#xff08;二&#xff09; 概述 SQLite数据库具有很强的抗损坏能力。如果应用程序崩溃&#xff0c…

鸿蒙hdc使用指导

简介 hdc&#xff08;HarmonyOS Device Connector&#xff09;是HarmonyOS为开发人员提供的用于调试的命令行工具&#xff0c;通过该工具可以在windows/linux/mac系统上与真实设备或者模拟器进行交互。 环境准备 hdc工具通过HarmonyOS SDK获取&#xff0c;存放于SDK的toolch…

2024-3-28 市场情绪强修复

这一轮退潮负反馈都修复了&#xff0c; 艾艾精工 博信股份 安奈尔 永悦科技 大理药业 &#xff0c;高新发展 也补跌了&#xff0c;收尸队也干活了&#xff0c;情绪不修复不接力得最好写照。这轮周期 宁科生物 已经7板&#xff0c;已经追平了 博信股份7板&#xff0c;看明天溢…

Mac安装minio

Mac安装minio 本文介绍使用 mac 安装 MinIO。 所有软件安装优先参考官网&#xff1a;MinIO Object Storage for MacOS — MinIO Object Storage for MacOS #使用 brew 安装 minio brew install minio/stable/minio#找到 minio tong ~ $ brew list minio /opt/homebrew/Cella…

银行监管报送系统介绍(十二):非居民金融账户涉税信息报送

国家税务总局、财政部、中国人民银行、中国银行业监督管理委员会、中国证券监督管理委员会、国家金融监督管理总局2017年5月9日发布、2017年7月1日起施行的《非居民金融账户涉税信息尽职调查管理办法》。 一、《管理办法》出台的背景是什么&#xff1f;   受二十国集团&…

math模块篇(四)

文章目录 math.ldexp(x, i)math.modf(x)math.nextafter(x, y, steps1)math.perm(n, kNone)math.prod(iterable, *, start1) math.ldexp(x, i) math.ldexp(x, i) 是 Python 中 math 模块的一个函数&#xff0c;用于执行二进制标度操作。它接受两个参数&#xff1a;尾数&#xf…

【unity】如何汉化unity Hub

相信大家下载安装unity后看着满操作栏的英文&#xff0c;英文不好的小伙伴们会一头雾水。但是没关系你要记住你要怎么高速运转的机器进入中国&#xff0c;请记住我给出的原理&#xff0c;不懂不代表不会用啊。现在我们就来把编译器给进行汉化。 第一步&#xff1a;我们打开Uni…

【VTKExamples::Points】第十一期 RadiusOutlierRemoval

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 公众号:VTK忠粉 前言 本文分享VTK样例RadiusOutlierRemoval,并解析接口vtkRadiusOutlierRemoval,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步! 你的点赞就是我的…

【消息队列开发】 实现 MqClientTests 类——测试客户端

文章目录 &#x1f343;前言&#x1f333;所需属性&#x1f334;BeforeEach&#x1f332;AfterEach&#x1f38d;API测试⭕总结 &#x1f343;前言 本次开发任务 测试客户端接口 &#x1f333;所需属性 所需要一共三个属性 BrokerServer&#xff1a;服务器 ConnectionFa…

考研数学|武忠祥学习包搭配《660》和《880》

一、660、880、三大计算简单分析 660题 这本题册具有高难度、综合度和深度&#xff0c;属于高质量的题材。我建议不要在基础阶段就着手解决其中的660题&#xff0c;因为这可能会影响你的信心。相反&#xff0c;你可以在基础阶段完成一轮学习后&#xff0c;将这些题目留到强化…

安泰ATA-2161高压放大器在生物传感器研究中的应用

生物传感器&#xff08;biosensor&#xff09;&#xff0c;是一种对生物物质敏感并将其浓度转换为电信号进行检测的仪器&#xff0c;它利用固定化生物成分或生物体作为敏感元件。生物传感器并不专指用于生物技术领域的传感器&#xff0c;它的应用领域还包括环境监测、医疗卫生和…

基于NBIOT的物联网工程实训系统设计与实现

基于NBIOT的物联网工程实训系统设计与实现 **摘要&#xff1a;**随着物联网技术的飞速发展&#xff0c;窄带物联网&#xff08;NB-IoT&#xff09;作为其重要分支&#xff0c;在低功耗广域网络通信领域扮演着越来越重要的角色。本文旨在设计并实现一套基于NB-IoT的物联网工程实…

市场复盘总结 20240328

仅用于记录当天的市场情况&#xff0c;用于统计交易策略的适用情况&#xff0c;以便程序回测 短线核心&#xff1a;不参与任何级别的调整&#xff0c;采用龙空龙模式 一支股票 10%的时候可以操作&#xff0c; 90%的时间适合空仓等待 二进三&#xff1a; 进级率中 40% 最常用的…