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

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

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

很多我們花費半天時間的事情,其實也許10分鐘就能輕鬆搞定。本文就來為大家介紹3個 能在10分鐘內搭建起來的強大又好用的遠程開發環境 !包含的編程工具有:Jupytercode-server以及PyCharm

雖然復工大潮正在逐步進行中,但仍然值得收藏!

畢竟手中有糧,才能心中不慌嘛!

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


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

Jupyter

Jupyter是一個基於Python的交互式筆記本開發環境,一般在數據分析和算法研究領用的比較廣。它最早叫做Jupyetr Notebook,現在功能進行了升級和改版,稱作JupyterLab。

Jupyter強大得猶如萬花筒

,不光支持幾十種編程語言的運行,並且還集成了Markdown語法,能夠助你實現“文學編程”。

憑藉方便的魔術命令和豐富的擴展插件,Jupyter猶如萬花筒般有著非常多樣化的功能,除了可以作為開發環境,Jupyter還能用來做幻燈片、演示教學以及分享筆記等等。

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

以Linux環境為例,Jupyter的部署主要有下面幾個步驟:

第一步, 安裝Jupyter

主要有兩種方式:

①可以在Python環境下通過pip的命令 pip install --user jupyterlab 來安裝。②可以直接安裝Anaconda這個工具。

第二步,生成配置

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

<code>$ jupyter lab --generate-config/<code>


第三步,進行加密

執行下面的Python命令生成加密過密碼串,

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


期間需要大家輸入並確認自己的密碼,之後就會輸出加密後的密碼,複製其中 : 後面的所有內容,然後切換到 ~/.jupyter 目錄,利用openssl命令生成Https的秘鑰和證書文件。

注意,這種方式生成的證書是本地的,所以瀏覽器在訪問Jupyter的時候會有警告,大家可以不用理會,點解接受或者同意就可以了。

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


第四步,修改配置

配置文件~/.jupyter/jupyter_notebook_config.py中的項目很多,我們這裡只列出其中比較重要的幾個配置項,其它的可根據需要自行進行修改設置。

<code> # *或者'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/<code>


第五步 啟動服務

先使用端口映射將Jupyter服務的端口(如8888)映射到公網上,

<code>$ nohup jupyter lab &/<code>


隨後使用命令啟動Jupyter服務,等上幾秒鐘在外網瀏覽器中輸入 https://DDNS設置的域名:映射出來的端口號 ,不出意外的話就能連接上內網的Jupyter服務了,或者通過Jupyter中的終端工具來操作內網中的主機,或者使用內網的工程環境進行項目開發都是很方便的,由於我們做了加密,所以數據傳輸也是比較安全可靠的。

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

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

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

第二步,準備Linux環境

可以直接在Windows10的應用商店中安裝一個Linux子系統,穩妥起見建議選擇Ubuntu發行版。

第三步,啟動服務

同樣先使用端口映射將code-server服務的端口(如9999)映射到公網上,然後通過Windows Terminal打開子系統的命令行,並切換到code-server文件所在的目錄。

然後執行啟動命令。

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


各選項參數的含義和前面的Jupyter比較類似,這裡不再贅述。(有興趣的同學可以通過 ./code-server --help 來查看其所有參數的使用說明。)

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

最後,和Jupyter的遠程一樣,最後在外網瀏覽器中輸入 https://DDNS設置的域名:映射出來的端口號 就可以盡情的享受Web上的VSCode了。

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


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了;

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

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

第三步, 設置遠程文件同步

從菜單欄中依次選擇 Tools → Deployment → Configuration ,進入到配置界面。

點擊添加(+)選擇SFTP,

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

根據自己的情況填寫 Connection 和 Mappings 兩個面板的信息,最後一確認也就OK了。

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

如果要覺得每次上傳代碼很麻煩,可以勾選 Tools → Deployment → Automatic Upload 實現自動上傳。如此之後你就可以實現在本地開心地編碼,而在遠程簡單的運行和調試啦!


上面講的三個遠程工具和方法都是用來進行

開發或者測試的,只會有一些少量的數據傳輸,所以相對於直接使用TeamViewer等遠程桌面工具而言,可以極大限度的減少網絡帶寬佔用!

此外,遠程環境大家是可以共享共用的,這在一定程度上也避免了多套重複環境的搭建,對於公司而言,在提高了工作效率的同時也節省了系統資源。

不過,需要注意的是,上文講述的這些步驟都是在使用量不大的情況下進行的,如果有成百上千個甚至更多的人在同時使用的話,那性能上可能就扛不住了,這個時候建議使用dockerNginx等工具將這些服務搭建成集群的形式以供大家使用。


博海,一個沉迷於技術並且追求藝術的pythoner,歡迎與我交流(微信號:bohy_i)。


分享到:


相關文章: