疫情嚴重的日子裏,人們對遠程辦公的渴望達到了巔峯。但在經歷了多次試錯與崩潰後,才發現能有一款與自己合拍的遠程編程工具是多麼的重要啊!
很多我們花費半天時間的事情,其實也許10分鐘就能輕鬆搞定。本文就來爲大家介紹3個 能在10分鐘內搭建起來的強大又好用的遠程開發環境 **!包含的編程工具有:Jupyter、code-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等遠程桌面工具而言,可以極大限度的減少網絡帶寬佔用!
此外,遠程環境大家是可以共享共用的,這在一定程度上也避免了多套重複環境的搭建,對於公司而言,在提高了工作效率的同時也節省了系統資源。
不過,需要注意的是,上文講述的這些步驟都是在使用量不大的情況下進行的,如果有成百上千個甚至更多的人在同時使用的話,那性能上可能就扛不住了,這個時候建議使用docker、Nginx等工具將這些服務搭建成集羣的形式以供大家使用。
本文作者:
博海,一個沉迷於技術並且追求藝術的pythoner,歡迎與我交流(微信號:bohy_i)。
更多科技資訊請見微信公衆號:博文視點Broadview(微信號:bvbooks)