疫情严重的日子里,人们对远程办公的渴望达到了巅峰。但在经历了多次试错与崩溃后,才发现能有一款与自己合拍的远程编程工具是多么的重要啊!

很多我们花费半天时间的事情,其实也许10分钟就能轻松搞定。本文就来为大家介绍3个 能在10分钟内搭建起来的强大又好用的远程开发环境 **!包含的编程工具有:Jupytercode-server以及PyCharm**。

虽然复工大潮正在逐步进行中,但仍然值得收藏!

毕竟手中有粮,才能心中不慌嘛!

Jupyter

Jupyter是一个基于Python的交互式笔记本开发环境,一般在数据分析和算法研究领用的比较广。它最早叫做Jupyetr Notebook,现在功能进行了升级和改版,称作JupyterLab。

Jupyter强大得犹如万花筒,不光支持几十种编程语言的运行,并且还集成了Markdown语法,能够助你实现“文学编程”。

凭借方便的魔术命令和丰富的扩展插件,Jupyter犹如万花筒般有着非常多样化的功能,除了可以作为开发环境,Jupyter还能用来做幻灯片、演示教学以及分享笔记等等。

所以能把Jupyter用好,那真的是如同有神兵在手!

以Linux环境为例,Jupyter的部署主要有下面几个步骤:

第一步, 安装Jupyter

主要有两种方式:

①可以在Python环境下通过pip的命令 pip install --user jupyterlab 来安装。②可以直接安装Anaconda这个工具。

第二步,生成配置

在命令行中执行jupyter notebook命令生成配置文件。

$ jupyter lab --generate-config

第三步,进行加密

执行下面的Python命令生成加密过密码串,

$ python -c "from notebook.auth import passwd; print(passwd())"
Enter password:
Verify password:
sha1:40b227e347eb:2a3c56620f990edfe3aecd21fbf62e038c3f92b3

期间需要大家输入并确认自己的密码,之后就会输出加密后的密码,复制其中 :  后面的所有内容,然后切换到 ~/.jupyter 目录,利用openssl命令生成Https的秘钥和证书文件。

注意,这种方式生成的证书是本地的,所以浏览器在访问Jupyter的时候会有警告,大家可以不用理会,点解接受或者同意就可以了。

$ openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout mykey.key -out mycert.pem

第四步,修改配置

配置文件~/.jupyter/jupyter_notebook_config.py中的项目很多,我们这里只列出其中比较重要的几个配置项,其它的可根据需要自行进行修改设置。

# *或者'0.0.0.0'表示开放本机所有IP地址的Jupyter服务,也可以指定本机某个IP地址c.NotebookApp.ip = '*'# 指定Jupyter的工作目录c.NotebookApp.notebook_dir = u'C:/Users/zzl-128/Desktop/tmp/' # 默认是否打开浏览器c.NotebookApp.open_browser = False# 加密后的密码c.NotebookApp.password = u'sha1:40b227e347eb:2a3c56620f990edfe3aecd21fbf62e038c3f92b3'# 证书
c.NotebookApp.certfile = u'C:/Users/zzl-128/.jupyter/mycert.pem'
# 秘钥
c.NotebookApp.keyfile = u'C:/Users/zzl-128/.jupyter/mykey.key'
# 所用端口号
c.NotebookApp.port = 8888

第五步 启动服务

先使用端口映射将Jupyter服务的端口(如8888)映射到公网上,

$ nohup jupyter lab &

随后使用命令启动Jupyter服务,等上几秒钟在外网浏览器中输入 https://DDNS设置的域名:映射出来的端口号  ,不出意外的话就能连接上内网的Jupyter服务了,或者通过Jupyter中的终端工具来操作内网中的主机,或者使用内网的工程环境进行项目开发都是很方便的,由于我们做了加密,所以数据传输也是比较安全可靠的。

code-server远程

说起code-server这个东东,知道的估计不多,但如果说起VScode,想必在IT圈无人不知无人不晓。

VScode是一款轻量级的文本编辑器,由于配置灵活以及插件海量的特点,可以搭建很多种语言的项目开发环境,所以深受大家的喜爱,被称为世界上最强的编辑器!

后来有“好事者”觉得不过瘾,搞了一个叫code-server的项目——把VScode搬上浏览器。

没错,我们可以把code-server理解为Web服务版的VScode

它和Jupyter类似,可以在浏览器中打开和使用,但相比而言,code-server远程的搭建更加简单一些:

第一步,下载code-server

可以在如下地址选择最新的code-server安装包(Linux环境)并下载解压,解压的文件中除code-server之外可以都删掉。

https://github.com/cdr/code-server/releases

第二步,准备Linux环境

可以直接在Windows10的应用商店中安装一个Linux子系统,稳妥起见建议选择Ubuntu发行版。

第三步,启动服务

同样先使用端口映射将code-server服务的端口(如9999)映射到公网上,然后通过Windows Terminal打开子系统的命令行,并切换到code-server文件所在的目录。

然后执行启动命令。

$ nohup ./code-server --cert mycert.pem --cert-key mykey.key --host 0.0.0.0 --auth password --port 9999 &

各选项参数的含义和前面的Jupyter比较类似,这里不再赘述。(有兴趣的同学可以通过 ./code-server --help 来查看其所有参数的使用说明。)

最后,和Jupyter的远程一样,最后在外网浏览器中输入  https://DDNS设置的域名:映射出来的端口号  就可以尽情的享受Web上的VSCode了。

PyCharm远程

PyCharm是目前Python语言最专业的集成开发环境,主针对Python开发的功能非常全面,通过插件也可以实现其它个别语言的开发,但没办法和上面两位相比。

PyCharm的远程实际上代表了一类远程方式——ssh远程

Java的IDAE、VSCode都可以按照这个思路来进行远程开发,其中的原理是相通的,这里以最具代表性的PyCharm为例来讲一讲如何通过ssh实现远程开发。

远程开发要解决两个问题:①如何使用远程服务端的语言环境,也就是Python的解释器;②本地代码怎样如何传到服务端。在PyCharm中这两个问题都可以通过配置来实现。

第一步, 开启ssh服务

安装ssh服务并开启(网上教程非常的多,不会的话可自行搜索哦),然后配置公网IP并通过端口映射将ssh服务映射出去。

第二步,设置远程解释器

打开Pycharm,从菜单栏中依次选择 File → Settings → Project Interpreter 进入到解释器设置界面。

点击Add选项并在弹出的面板中选择SSH Interpreter,依次输入远程地址和用户名密码、选择远程解释器路径就OK了;

第三步, 设置远程文件同步

从菜单栏中依次选择 Tools → Deployment →  Configuration ,进入到配置界面。

点击添加(+)选择SFTP,

根据自己的情况填写 Connection *和 Mappings *两个面板的信息,最后一确认也就OK了。

如果要觉得每次上传代码很麻烦,可以勾选 Tools → Deployment → Automatic Upload 实现自动上传。如此之后你就可以实现在本地开心地编码,而在远程简单的运行和调试啦!

上面讲的三个远程工具和方法都是用来进行开发或者测试的,只会有一些少量的数据传输,所以相对于直接使用TeamViewer等远程桌面工具而言,可以极大限度的减少网络带宽占用!

此外,远程环境大家是可以共享共用的,这在一定程度上也避免了多套重复环境的搭建,对于公司而言,在提高了工作效率的同时也节省了系统资源。

不过,需要注意的是,上文讲述的这些步骤都是在使用量不大的情况下进行的,如果有成百上千个甚至更多的人在同时使用的话,那性能上可能就扛不住了,这个时候建议使用dockerNginx等工具将这些服务搭建成集群的形式以供大家使用。

本文作者:

博海,一个沉迷于技术并且追求艺术的pythoner,欢迎与我交流(微信号:bohy_i)。


更多科技资讯请见微信公众号:博文视点Broadview(微信号:bvbooks)

10分钟就能搭建远程开发环境?你早点怎么不出现(#`n´)!相关推荐

  1. JetBrains开发工具搭建远程开发环境

    前言# 平时我们在开发项目时,多数使用的是Mac 或者 windows 系统,但是有些项目却只能在 linux 或者 arm 系统下运行, 我们一般的做法是:现在本地电脑上开发完成,然后发送到 lin ...

  2. iphone php环境,苹果(Mac OS X 10.5.6)下搭建php开发环境

    很多做设计的朋友用的是苹果mac系统,但做开发往往因环境而头疼,甚至有用虚拟机的,太痛苦了.今天让我们一起来学习下苹果系统下配置工作环境,首先得让Mac OS支持PHP.不管你是采用集成的开发环境,比 ...

  3. 搭建3款远程开发环境:Pycharm、Jupyter notebook以及code-server

    由于疫情人们对远程办公的渴望达到了巅峰.但在经历了多次试错与崩溃后,才发现能有一款与自己合拍的远程编程工具是多么的重要啊! 很多花费半天时间的事情,也许10分钟就能轻松搞定.本文就为大家介绍3个能在1 ...

  4. 【视觉运控一体机小课堂】三分钟搭建机器视觉开发环境

    回顾之前课程正运动技术与大家分享了,VPLC系列机器视觉运动控制一体机快速入门和应用案例等系列课程. 今天,我们来讲解一下正运动技术VPLC系列控制器ZDevelop编程软件如何来建立ZVision软 ...

  5. Windows 10 搭建Python开发环境(PyCharm )

    Windows 10 搭建Python开发环境(PyCharm ) 一.安装Python3 二.安装Pycharm 怎么使用PyCharm编写Python程序,简单教程. windows下安装pyth ...

  6. react安装_「React实战」三分钟搭建React开发环境

    其实16年的时候就已经接触到React,那个时候也只是入门,时隔多年,工作上一直都没有接触到相关的业务,不知不觉,前端的天也开始渐变,看到 了很多招聘要求上都是要求会React,三大框架怎么也得熟悉使 ...

  7. linux下julia的开发环境,Ubuntu搭建Julia远程开发环境

    Julia作为一门新兴的编程语言,还是可以学一学的,这里总结了一下Ubuntu系统远程搭建Julia开发环境的方法. 前期准备: 云服务器一台,操作系统为Ubuntu18.04, xshell6 + ...

  8. 音视频开发6. 搭建 ffmpeg Linux远程开发环境

    音视频开发6. 搭建 ffmpeg Linux远程开发环境 一.准备环境 二.操作步骤 1. 在CentOS 编译安装 ffmpeg 2. 编译安装ffmpeg后的环境 3. 本地在vscode安装 ...

  9. Windows7/10上快速搭建Tesseract-OCR开发环境操作步骤

    之前在https://blog.csdn.net/fengbingchun/article/details/51628957 中描述过如何在Windows上搭建Tesseract-OCR开发环境,那时 ...

  10. 五分钟用Docker快速搭建Go开发环境

    挺早以前在我写过一篇用 Docker搭建LNMP开发环境的文章:用Docker搭建Laravel开发环境,里面详细介绍了将 nginx. mysql和 php三个容器用 docker-compose编 ...

最新文章

  1. 重磅推荐12款jQuery编写的选择器
  2. 个人分析美国电脑销售现状(网店)
  3. 百度AICA再添57位“首席AI架构师”,人工智能与产业场景结合愈发深入
  4. django入门三(视图)
  5. 分布式系统概念 | 分布式锁:数据库、Redis、Zookeeper解决方案
  6. 视频上传、转码、切面、存储的思路
  7. 电子徽章:融创意、疯狂与电子设计中
  8. html5登录界面源代码_最新版本尤娜博客已更新源代码(速拿!!!)
  9. 局域网远程yum源制作
  10. 好程序员分享如何看待CSS中BEM的命名方式?
  11. Gstreamer入门之Helloworld(一)
  12. js基础-15-new操作符,延迟加载,严格模式
  13. 收看IT播吧吉米老师iptables讲座
  14. 在计算机上设置桌面,如何在计算机上设置动态桌面墙纸
  15. 卓岚APP远程采集正泰单相电子式电能表 ZLAN5144J的应用分享
  16. ESP8266连接天猫精灵(一)
  17. 文档损坏了怎么修复?文档修复方法分享
  18. C语言条件运算符详解
  19. 额,我要说一件重要的事+用C++编写一个走迷宫小游戏(1.1版)
  20. R语言使用lm函数构建简单线性回归模型(建立线性回归模型)、拟合回归直线、使用attributes函数查看线性回归模型的属性信息、获取模型拟合对应的残差值residuals

热门文章

  1. iOS学习笔记之正则表达式
  2. Java super与this
  3. Selenium之Action Chains类
  4. 【转】CentOS7 yum方式配置LAMP环境
  5. [解答]对‘’未定义的引用 collect2: 错误: ld 返回 1
  6. 无法加载站点/服务的所有 ISAPI 筛选器,因此启动中止——Service Unavailable解决方法合集...
  7. ZeroC Ice介绍与简单demo构建
  8. [原创]BizTalk 开发系列
  9. 谈SQL SERVER数据库中的索引
  10. Web前端学习笔记(三)——input标签的属性