亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python使用PyCharm進(jìn)行遠(yuǎn)程開發(fā)和調(diào)試

 更新時間:2017年11月02日 16:26:26   作者:老司兒  
這篇文章主要介紹了python使用PyCharm進(jìn)行遠(yuǎn)程開發(fā)和調(diào)試,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

背景描述

有時候Python應(yīng)用的代碼在本地開發(fā)環(huán)境運行十分正常,但是放到線上以后卻出現(xiàn)了莫名其妙的異常,經(jīng)過再三排查以后還是找不到問題原因,于是就在想,要是可以在服務(wù)器環(huán)境中進(jìn)行單步跟蹤調(diào)試就好了。

然而,在服務(wù)器系統(tǒng)上安裝一個IDE肯定是不現(xiàn)實的;通過SSH遠(yuǎn)程到服務(wù)器端,采用pdb進(jìn)行調(diào)試雖然可行,但是操作還是較為繁瑣,而且也不夠直觀。

那么,是否可以將開發(fā)環(huán)境中的IDE與服務(wù)器環(huán)境相連,實現(xiàn)利用開發(fā)環(huán)境的IDE調(diào)試服務(wù)器環(huán)境中運行的程序呢? 答案是肯定的,這就是遠(yuǎn)程調(diào)試(Remote Debug)。

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

遠(yuǎn)程調(diào)試的功能在Eclipse、IntelliJ IDEA等大型IDE中均有支持,實現(xiàn)原理都基本相同,這里采用PyCharm進(jìn)行說明。

在遠(yuǎn)程調(diào)試的模式下,PyCharm(IDE)扮演服務(wù)端(Server)的角色,而運行在遠(yuǎn)程計算機上的應(yīng)用程序扮演客戶端(Client)的角色。正因如此,進(jìn)行遠(yuǎn)程調(diào)試時,需要先在本地開發(fā)環(huán)境中設(shè)定端口并啟動IDE,IDE會對設(shè)定的端口開始監(jiān)聽,等待客戶端的連接請求;那遠(yuǎn)程計算機中的應(yīng)用程序又是怎樣與IDE建立通訊連接的呢?

針對遠(yuǎn)程調(diào)試功能,PyCharm提供了pydevd模塊,該模塊以pycharm-debug.egg的形式存在于PyCharm的安裝路徑中。遠(yuǎn)程計算機安裝該庫文件后,然后就可以調(diào)用pydevd.settrace方法,該方法會指定IDE所在機器的IP地址和監(jiān)聽的端口號,用于與IDE建立連接;建立連接后,便可在IDE中對遠(yuǎn)程在遠(yuǎn)程計算機中的程序進(jìn)行單步調(diào)試。

使用PyCharm進(jìn)行遠(yuǎn)程開發(fā)和調(diào)試

你是否經(jīng)常要在Windows 7或MAC OS X上面開發(fā)Python或Web應(yīng)用程序,但是它們最后需要在linux上面來運行呢? 我們經(jīng)常會碰到開發(fā)時沒有問題但是到了正式的Linux環(huán)境下面卻出現(xiàn)問題。那么怎樣保證開發(fā)環(huán)境跟運行環(huán)境的一致呢?

通常有兩種方法解決。一種是使用PyCharm內(nèi)置支持的Vagrant,這個教程可以參考Vagrant開發(fā)環(huán)境配置。 不過很遺憾的是我自己在試驗過程中啟動VirtualBox虛擬機時候老是報錯,暫時還沒解決,讀者可以自己試著測試看行不行。 第二種方式就是通過PyCharm的遠(yuǎn)程解釋器加上文件同步功能,實現(xiàn)本地編輯代碼->同步到服務(wù)器->通過遠(yuǎn)程debug來調(diào)試測試程序。目前我選擇的是第二種,雖然比第一種更笨拙點。

遠(yuǎn)程調(diào)試的功能在Eclipse、IntelliJ IDEA等大型IDE中均有支持,實現(xiàn)原理都基本相同,這里采用PyCharm進(jìn)行說明。

遠(yuǎn)程服務(wù)器的同步配置

遠(yuǎn)程服務(wù)器IP地址192.168.203.95,開啟ssh服務(wù),安裝python版本2.7。我用一個在PyCharm里面的core-python項目來做演示。

首先我們需要配置PyCharm通服務(wù)器的代碼同步,打開Tools | Deployment | Configuration

點擊左邊的“+”添加一個部署配置,輸入名字,類型選SFTP

確定之后,再配置遠(yuǎn)程服務(wù)器的ip、端口、用戶名和密碼。root path是文件上傳的根目錄,注意這個目錄必須用戶名有權(quán)限創(chuàng)建文件。

然后配置映射,local path是你的工程目錄,就是需要將本地這個目錄同步到服務(wù)器上面,我填的是項目根目錄。 Deploy path on server 這里填寫相對于root path的目錄,下面那個web path不用管先

如果你還有一些文件或文件夾不想同步,那么在配置對話框的第三個tab頁“Excluded path”里面添加即可,可同時指定本地和遠(yuǎn)程。

還有一個設(shè)置,打開Tools | Deployment | Options,將”Create Empty directories”打上勾,要是指定的文件夾不存在,會自動創(chuàng)建。

上傳和下載文件

有幾種方法可以實現(xiàn)本地和遠(yuǎn)程文件的同步,手動和當(dāng)文件保存后自動觸發(fā)。這里我選擇了手動,因為自動觸發(fā)比如影響性能,PyCharm會卡,感覺不爽。

手動上傳方式很簡單,選擇需要同步的文件或文件夾,然后選擇 Tools | Deployment | Upload to sftp(這個是剛剛配置的部署名稱)

下載文件也是一樣,選擇 Tools | Deployment | Download from sftp

比較遠(yuǎn)程和本地文件

有時候你并不確定遠(yuǎn)程和本地版本的完全一致,需要去比較看看。PyCharm提供了對比視圖來為你解決這個問題。

選擇Tools | Deployment | Browse Remote Host,打開遠(yuǎn)程文件視圖,在右側(cè)窗口就能看到遠(yuǎn)程主機中的文件

選擇一個你想要對比的文件夾,點擊右鍵->Sync with Local,打開同步對比窗口,使用左右箭頭來同步內(nèi)容。

上面是服務(wù)器與本地對比,那么本地文件通服務(wù)器對比,就先在PyCharm里面選擇文件或文件夾,然后右鍵->Deployment->Sync with deployed to即可

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

在PyCharm中進(jìn)行遠(yuǎn)程調(diào)試有兩種選擇:

  1. 使用遠(yuǎn)程的解釋器
  2. 使用Python調(diào)試服務(wù)器

這里簡單起見我只演示第一種,使用遠(yuǎn)程解釋器,也就是使用服務(wù)器上面安裝的python解釋器。

配置遠(yuǎn)程Python解釋器

選擇File | Settings,選擇Project | Project Interpreter,然后在右邊,點擊那個小齒輪設(shè)置,如下

然后點擊”Add Remote”,填寫主機的ssh配置

如果之前配置過SFTP的話就直接選“Deployment configuration”,然后選擇剛剛的模板名稱就可以了,由于我上面配置過就直接選模板, 這里請仔細(xì)看我的Python解釋器是虛擬環(huán)境virtualenv,這個要在服務(wù)器上面先創(chuàng)建好虛擬環(huán)境。

開始調(diào)試

完成之后選擇這個遠(yuǎn)程的解釋器作為工程的解釋器即可,然后配置一個運行實例,打斷點調(diào)試。 這里我以另外一個django工程為例來說明,名字為zspace,因為用一個web工程來說明更具代表性。

選擇“Run/Debug Configuration”,添加一個“Django server”,然后配置像下面這樣寫

請注意圖中標(biāo)出的幾個點,具體什么意思就不用多解釋了吧,^_^

然后你就可以像本地調(diào)試一樣打斷點做調(diào)試了。這個步驟太簡單就不截圖了,記得修改源碼后同步到服務(wù)器繼續(xù)下一次的調(diào)試。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python元組及文件核心對象類型詳解

    Python元組及文件核心對象類型詳解

    本篇文章主要給大家詳細(xì)講述了Python核心對象類型之元組及文件的相關(guān)內(nèi)容,對此有興趣的學(xué)習(xí)下。
    2018-02-02
  • Jupyter Notebook添加代碼自動補全功能的實現(xiàn)

    Jupyter Notebook添加代碼自動補全功能的實現(xiàn)

    這篇文章主要介紹了Jupyter Notebook添加代碼自動補全功能的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • pandas學(xué)習(xí)之txt與sql文件的基本操作指南

    pandas學(xué)習(xí)之txt與sql文件的基本操作指南

    Pandas是Python的第三方庫,提供高性能易用的數(shù)據(jù)類型和分析工具,下面這篇文章主要給大家介紹了關(guān)于pandas學(xué)習(xí)之txt與sql文件的基本操作指南,需要的朋友可以參考下
    2021-08-08
  • python opencv如何實現(xiàn)圖片繪制

    python opencv如何實現(xiàn)圖片繪制

    這篇文章主要介紹了python opencv如何實現(xiàn)圖片繪制,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-01-01
  • 在dataframe兩列日期相減并且得到具體的月數(shù)實例

    在dataframe兩列日期相減并且得到具體的月數(shù)實例

    今天小編就為大家分享一篇在dataframe兩列日期相減并且得到具體的月數(shù)實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Flask框架工廠函數(shù)用法實例分析

    Flask框架工廠函數(shù)用法實例分析

    這篇文章主要介紹了Flask框架工廠函數(shù)用法,結(jié)合實例形式分析了Flask框架工廠函數(shù)定義、應(yīng)用及相關(guān)操作注意事項,需要的朋友可以參考下
    2019-05-05
  • Python 用三行代碼提取PDF表格數(shù)據(jù)

    Python 用三行代碼提取PDF表格數(shù)據(jù)

    這篇文章主要介紹了Python 用三行代碼提取PDF表格數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • python實現(xiàn)圖片上添加圖片

    python實現(xiàn)圖片上添加圖片

    這篇文章主要為大家詳細(xì)介紹了python實現(xiàn)圖片上添加圖片,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • Python常見數(shù)據(jù)結(jié)構(gòu)詳解

    Python常見數(shù)據(jù)結(jié)構(gòu)詳解

    這篇文章主要介紹了Python常見數(shù)據(jù)結(jié)構(gòu),需要的朋友可以參考下
    2014-07-07
  • Python實現(xiàn)處理圖片水印的方法詳解

    Python實現(xiàn)處理圖片水印的方法詳解

    這篇文章主要為大家詳細(xì)介紹了如何利用Python實現(xiàn)處理圖片水印的相關(guān)資料,主要是實現(xiàn)圖片水印的去除效果,感興趣的小伙伴可以嘗試一下
    2022-11-11

最新評論