10分鐘就能搭建遠程開發環境?你早點怎麼不出現(#`n´)!

疫情嚴重的日子裏,人們對遠程辦公的渴望達到了巔峯。但在經歷了多次試錯與崩潰後,才發現能有一款與自己合拍的遠程編程工具是多麼的重要啊!

很多我們花費半天時間的事情,其實也許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)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章