自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

飛翔的靈蛇——PyCharm遠(yuǎn)程調(diào)試

開發(fā) 開發(fā)工具
遠(yuǎn)程調(diào)試其實(shí)只有兩個(gè)要點(diǎn),pydev幫我們解決了遠(yuǎn)程斷點(diǎn)、啟動(dòng)的問題;我們自己要解決代碼同步的問題。文章都是用虛擬機(jī)來做開發(fā)環(huán)境的,你也可以用一臺(tái)公用的機(jī)器來做開發(fā)環(huán)境。這種情況下你就必須用下面的方式開啟文件同步了。

公司要用Python開發(fā)一個(gè)基于Linux的系統(tǒng),我是不可能忍受把我的“高端Mac”換成矮挫丑的Linux的(更何況還要考慮團(tuán)隊(duì)中有很多同事用Windows)。借助PyCharm的遠(yuǎn)程調(diào)試可以實(shí)現(xiàn)“本地寫代碼,遠(yuǎn)程Debug”

配置PyCharm遠(yuǎn)程調(diào)試

選擇Project Interpreter的時(shí)候我們是可以選擇“Add Remote”

打開之后是一片“新大陸”

我們先通過SSH配置,輸入服務(wù)器的地址,賬號密碼,勾選服務(wù)器端的Python路徑。確定之后PyCharm會(huì)把在遠(yuǎn)程機(jī)器上安裝Python Helpers(默認(rèn)安裝在Home目錄下的.pycharm_helpers,比如我用的是fireflyc所以目錄是/home/fireflyc/.pycharm_helpers)。

這里最關(guān)鍵的一個(gè)步驟——Path Maping。它是本地路徑和服務(wù)器路徑的映射關(guān)系,當(dāng)我們在本地執(zhí)行Debug的時(shí)候代碼其實(shí)是在遠(yuǎn)程Linux上執(zhí)行的,這必須解決一個(gè)問題——如何把代碼同步到遠(yuǎn)程Linux上。最簡單的辦法是通過VMware裝一個(gè)虛擬機(jī),用"文件共享"的方式。

設(shè)置完成后需要在Path Maping中新增映射關(guān)系

LocalPath是工程的根目錄,Remote Path是共享文件夾所在目錄

執(zhí)行一下,“如絲般順滑”,還能打斷點(diǎn)。

遠(yuǎn)程調(diào)試的原理

遠(yuǎn)程調(diào)試不是什么黑魔法,它是IDE工具發(fā)展的一種傾向——細(xì)分前端和后端。前端偏向于完成代碼編輯、呈現(xiàn)工作相當(dāng)于設(shè)置一個(gè)框架;后端則是針對某個(gè)語言的語法加亮、代碼提示、自動(dòng)完成、代碼格式化、調(diào)試。比如visual code在這一點(diǎn)上表現(xiàn)的就非常明顯,VSC只提供了一個(gè)“編輯器”的功能,每個(gè)語言的加亮、代碼提示、格式化、調(diào)試都是通過“插件”實(shí)現(xiàn)的。這個(gè)插件不是傳統(tǒng)意義上的“靜態(tài)”的,而是一個(gè)獨(dú)立的進(jìn)程。visual code稱這個(gè)為language server,并且制定了一個(gè)Language Server Protocol的規(guī)范。有興趣的朋友可以去看一下或者嘗試自己寫一個(gè)插件。

PyCharm還沒有這么徹底,它只是把Debug部分做成一個(gè)單獨(dú)的Server。去看一下“神秘”的.pycharm_helpers就一目了然了

PyCharm遠(yuǎn)程調(diào)試的時(shí)候我們偷偷的看一下進(jìn)程

真相大白了。原理其實(shí)很簡單,調(diào)試的時(shí)候PyCharm通過SSH執(zhí)行遠(yuǎn)程Linux上的pydev,這個(gè)進(jìn)程會(huì)執(zhí)行本地的python代碼。pydev和Pycharm會(huì)有網(wǎng)絡(luò)通訊用來傳遞“打斷點(diǎn)、取消斷點(diǎn)、單步執(zhí)行”之類的調(diào)試動(dòng)作,端口是——45140。

自動(dòng)化開發(fā)環(huán)境

解決了遠(yuǎn)程調(diào)試的問題后順帶可以解決一下“開發(fā)環(huán)境”的問題;每個(gè)人都去新建一臺(tái)虛擬機(jī)會(huì)比較麻煩,***可能選擇的發(fā)行版本千奇百怪。所以通過vagrant來管理“開發(fā)虛擬機(jī)”是一種很好的實(shí)踐。

這段腳本會(huì)生成一個(gè)ubuntu/trusty64鏡像的虛擬機(jī)(ubuntu 14),使用的是virtualbox;把虛擬機(jī)的8000端口映射成本機(jī)的8000端口;設(shè)置共享目錄(我的Vagrantfile在工程根目錄下的dev文件夾,所以../其實(shí)就是工程根目錄);設(shè)置虛擬機(jī)***次啟動(dòng)的時(shí)候執(zhí)行的腳本(會(huì)設(shè)置軟件的源,關(guān)閉防火墻之類的)

通過上面的配置整個(gè)開發(fā)環(huán)境就自動(dòng)化了,開發(fā)人員拿到代碼之后執(zhí)行切換到dev目錄下執(zhí)行vagrant up,然后選擇

PathMapping系統(tǒng)會(huì)為我們自動(dòng)添加上(根據(jù)vagrantfile的配置)

Vagrant小結(jié)

Vagrant是一個(gè)定義虛擬機(jī)的配置工具,你可以用一段Ruby腳本設(shè)置自己虛擬機(jī)的大小、配置、使用的虛擬化軟件,之后執(zhí)行vagrant up就會(huì)自動(dòng)創(chuàng)建出一臺(tái)虛擬機(jī)。

Vagrant會(huì)自動(dòng)生成一個(gè)vagrant的用戶同時(shí)生成一對SSH密鑰,私鑰會(huì)放在.vagrant文件夾下(執(zhí)行vagrant up后會(huì)看到有一個(gè).vagrant文件夾的)。我們執(zhí)行vagrant ssh xxx的時(shí)候會(huì)自動(dòng)使用這個(gè)私鑰登錄。所以PyCharm的配置其實(shí)還是通過SSH,原理并沒有變。

關(guān)于Docker

PyCharm還支持Docker,但是我覺得這個(gè)并沒有什么用。在MacOS、Windows上Docker其實(shí)是先啟動(dòng)一臺(tái)虛擬機(jī)里面裝上Linux然后在里面裝Docker。

總結(jié)

遠(yuǎn)程調(diào)試其實(shí)只有兩個(gè)要點(diǎn),pydev幫我們解決了遠(yuǎn)程斷點(diǎn)、啟動(dòng)的問題;我們自己要解決代碼同步的問題。文章都是用虛擬機(jī)來做開發(fā)環(huán)境的,你也可以用一臺(tái)公用的機(jī)器來做開發(fā)環(huán)境。這種情況下你就必須用下面的方式開啟文件同步了。

***補(bǔ)充一點(diǎn),我推薦用vagrant的方式它可以幫我們“規(guī)范化虛擬機(jī)”;如果你開發(fā)的程序必須用root啟動(dòng)(vagrant是用vagrant用戶啟動(dòng)的)那么只能用ssh了。(我們也可以只讓vagrant幫我們生成虛擬機(jī),我們自己進(jìn)去修改root的密碼,然后通過ssh連接進(jìn)去。)

【本文是51CTO專欄作者邢森的原創(chuàng)文章,轉(zhuǎn)載請聯(lián)系作者本人獲取授權(quán)】

戳這里,看該作者更多好文

責(zé)任編輯:武曉燕 來源: 寫程序的康德
相關(guān)推薦

2010-03-10 11:00:26

Zend Studio遠(yuǎn)程調(diào)試

2012-09-17 13:49:31

2009-11-23 14:32:55

Visual Stud

2022-08-15 20:48:28

Chrome安卓網(wǎng)頁

2020-05-21 15:53:59

遠(yuǎn)程調(diào)試工具

2009-04-10 09:07:14

2011-08-31 16:51:12

Lua調(diào)試器

2013-05-29 14:54:49

Visual Stud

2017-05-16 09:44:00

網(wǎng)絡(luò)存儲(chǔ)NAS企業(yè)存儲(chǔ)

2009-06-03 08:30:30

禚佳春法航華為

2010-03-16 15:42:26

Java遠(yuǎn)程配置

2010-07-12 10:03:25

SQL Serverr

2011-02-23 09:35:25

Eclipse遠(yuǎn)程調(diào)試

2009-09-07 23:27:59

WLAN無線網(wǎng)絡(luò)3G移動(dòng)系統(tǒng)H3C

2011-08-24 11:08:09

Lua

2023-11-10 09:20:28

Java工具

2023-12-13 08:17:24

JPDAJavaDebug

2011-09-23 16:15:56

電子政務(wù)

2021-03-22 11:20:10

數(shù)據(jù)中心科技數(shù)字化轉(zhuǎn)型

2021-02-02 13:31:35

Pycharm系統(tǒng)技巧Python
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號