成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

飛翔的靈蛇——PyCharm遠程調試

開發 開發工具
遠程調試其實只有兩個要點,pydev幫我們解決了遠程斷點、啟動的問題;我們自己要解決代碼同步的問題。文章都是用虛擬機來做開發環境的,你也可以用一臺公用的機器來做開發環境。這種情況下你就必須用下面的方式開啟文件同步了。

公司要用Python開發一個基于Linux的系統,我是不可能忍受把我的“高端Mac”換成矮挫丑的Linux的(更何況還要考慮團隊中有很多同事用Windows)。借助PyCharm的遠程調試可以實現“本地寫代碼,遠程Debug”

配置PyCharm遠程調試

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

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

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

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

設置完成后需要在Path Maping中新增映射關系

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

執行一下,“如絲般順滑”,還能打斷點。

遠程調試的原理

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

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

PyCharm遠程調試的時候我們偷偷的看一下進程

真相大白了。原理其實很簡單,調試的時候PyCharm通過SSH執行遠程Linux上的pydev,這個進程會執行本地的python代碼。pydev和Pycharm會有網絡通訊用來傳遞“打斷點、取消斷點、單步執行”之類的調試動作,端口是——45140。

自動化開發環境

解決了遠程調試的問題后順帶可以解決一下“開發環境”的問題;每個人都去新建一臺虛擬機會比較麻煩,***可能選擇的發行版本千奇百怪。所以通過vagrant來管理“開發虛擬機”是一種很好的實踐。

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

通過上面的配置整個開發環境就自動化了,開發人員拿到代碼之后執行切換到dev目錄下執行vagrant up,然后選擇

PathMapping系統會為我們自動添加上(根據vagrantfile的配置)

Vagrant小結

Vagrant是一個定義虛擬機的配置工具,你可以用一段Ruby腳本設置自己虛擬機的大小、配置、使用的虛擬化軟件,之后執行vagrant up就會自動創建出一臺虛擬機。

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

關于Docker

PyCharm還支持Docker,但是我覺得這個并沒有什么用。在MacOS、Windows上Docker其實是先啟動一臺虛擬機里面裝上Linux然后在里面裝Docker。

總結

遠程調試其實只有兩個要點,pydev幫我們解決了遠程斷點、啟動的問題;我們自己要解決代碼同步的問題。文章都是用虛擬機來做開發環境的,你也可以用一臺公用的機器來做開發環境。這種情況下你就必須用下面的方式開啟文件同步了。

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

【本文是51CTO專欄作者邢森的原創文章,轉載請聯系作者本人獲取授權】

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

責任編輯:武曉燕 來源: 寫程序的康德
相關推薦

2010-03-10 11:00:26

Zend Studio遠程調試

2012-09-17 13:49:31

2009-11-23 14:32:55

Visual Stud

2009-04-10 09:07:14

2022-08-15 20:48:28

Chrome安卓網頁

2020-05-21 15:53:59

遠程調試工具

2017-05-16 09:44:00

網絡存儲NAS企業存儲

2009-06-03 08:30:30

禚佳春法航華為

2009-09-07 23:27:59

WLAN無線網絡3G移動系統H3C

2011-08-31 16:51:12

Lua調試器

2013-05-29 14:54:49

Visual Stud

2010-03-16 15:42:26

Java遠程配置

2010-07-12 10:03:25

SQL Serverr

2011-02-23 09:35:25

Eclipse遠程調試

2011-08-24 11:08:09

Lua

2023-12-13 08:17:24

JPDAJavaDebug

2023-11-10 09:20:28

Java工具

2011-09-23 16:15:56

電子政務

2021-03-22 11:20:10

數據中心科技數字化轉型

2014-10-11 16:30:49

機場信息化華為
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本网站免费观看 | 成人不卡 | 97精品国产97久久久久久免费 | 日韩国产黄色片 | 久久免费视频1 | 国产精品日日做人人爱 | 日本在线一区二区三区 | 97日韩精品| 国产午夜在线 | 亚洲精品久久久9婷婷中文字幕 | 在线视频第一页 | 在线精品国产 | 午夜成人免费视频 | 精品久久久久久亚洲精品 | 日韩欧美国产一区二区 | 国产成人免费视频网站高清观看视频 | 欧美日韩在线一区二区三区 | 在线免费观看成人 | 欧美性受xxx | 日韩小视频| 九九伊人sl水蜜桃色推荐 | 国产一区二区三区在线视频 | 成人免费观看男女羞羞视频 | 成人欧美一区二区三区黑人孕妇 | 国产成人在线视频 | 美国黄色一级片 | 看av网 | 羞羞色视频 | 91久色| 亚洲精品在线免费观看视频 | 免费av毛片 | 天天拍天天色 | 欧美日高清视频 | 亚洲人成人一区二区在线观看 | 91成人免费看| 欧美日在线 | 久久激情视频 | 久久精片| 亚洲第一免费播放区 | 亚洲一区二区三区视频 | www.久久.com |