<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      利用PyCharm進(jìn)行Python遠(yuǎn)程調(diào)試

      背景描述

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

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

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

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

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

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

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

      遠(yuǎn)程調(diào)試的配置方法

      1、在遠(yuǎn)程計算機(jī)上安裝pydevd模塊

      首先,在本地開發(fā)環(huán)境的PyCharm安裝路徑中找到pycharm-debug.egg文件(若遠(yuǎn)程計算機(jī)運(yùn)行的是Python3,則需要pycharm-debug-py3k.egg);

      然后,將pycharm-debug.egg文件拷貝至遠(yuǎn)程計算機(jī),在遠(yuǎn)程計算機(jī)中將pycharm-debug.egg添加至引用路徑,可以采用多種方式:

      • 采用easy_install pycharm-debug.egg命令進(jìn)行安裝(pip命令無法安裝,只能使用easy_install)
      • pycharm-debug.egg添加至PYTHONPATHsys.pathimport sys; sys.path.append('/home/leo/app-dependancies/pycharm-debug.egg')
      • 解壓pycharm-debug.egg,將其中的pydev文件夾拷貝至遠(yuǎn)程應(yīng)用程序目錄下

      最后,在遠(yuǎn)程計算機(jī)的Python命令行中輸入import pydevd,若沒有報錯則說明pydevd模塊安裝成功。

      2、在本地開發(fā)環(huán)境的PyCharm中進(jìn)行監(jiān)聽配置

      在PyCharm中配置說明如下:

      • 【Run】->【Edit Configurations】
      • 【Add New Configuration】->【Python Remote Debug】
      • 填寫Local host namePort,其中Local host name指的是本機(jī)開發(fā)環(huán)境的IP地址,而Port則隨便填寫一個10000以上的即可;需要注意的是,由于遠(yuǎn)程計算機(jī)需要連接至本地開發(fā)環(huán)境,因此本地IP地址應(yīng)該保證遠(yuǎn)程可以訪問得到
      • 【Apply】and【OK】

      3、在本地開發(fā)環(huán)境的PyCharm中配置Mapping映射

      4、在遠(yuǎn)程計算機(jī)的應(yīng)用程序中插入代碼

      將如下代碼插入至遠(yuǎn)程計算機(jī)的應(yīng)用程序中。

      import pydevd
      pydevd.settrace('100.84.48.156', port=31235, stdoutToServer=True, stderrToServer=True)
      

      其中,IP地址和端口號要與PyCharm中的監(jiān)聽配置保持一致。

      5、在PyCharm中啟動Debug Server

      【Run】->【Debug…】,選擇剛創(chuàng)建的遠(yuǎn)程調(diào)試配置項,在Debug Console中會顯示如下信息:

      Starting debug server at port 31235
      Waiting for process connection...
      Use the following code to connect to the debugger:
      import pydevd
      pydevd.settrace('100.84.48.156', port=31235, stdoutToServer=True, stderrToServer=True)
      

      這說明Debug Server已經(jīng)啟動并處于監(jiān)聽狀態(tài)。

      6、在遠(yuǎn)程計算機(jī)中啟動應(yīng)用程序

      在遠(yuǎn)程計算機(jī)中啟動應(yīng)用程序,當(dāng)執(zhí)行到pydevd.settrace語句時,便會與本地開發(fā)環(huán)境中的PyCharm建立通訊連接,接下來便可以在本地IDE中進(jìn)行單步調(diào)試了。

      需要注意的是,本地開發(fā)環(huán)境必須保證IP地址和端口號可從遠(yuǎn)程計算機(jī)訪問得到,否則會無法建立連接。

      $ telnet 100.84.48.156 31235
      Trying 100.84.48.156...
      telnet: Unable to connect to remote host: Connection refused
      
      $ python devicedectector.py
      Could not connect to 100.84.48.156: 31236
      Traceback (most recent call last):
        File "/usr/local/lib/python2.7/dist-packages/pycharm-debug.egg/pydevd_comm.py", line 478, in StartClient
          s.connect((host, port))
        File "/usr/lib/python2.7/socket.py", line 224, in meth
          return getattr(self._sock,name)(*args)
      error: [Errno 111] Connection refused
      posted @ 2016-07-03 20:07  狂師  閱讀(36346)  評論(2)    收藏  舉報
      主站蜘蛛池模板: 国产精品国产精品国产专区| 浦东新区| 亚洲国产精品一区二区第一页| 亚洲欧洲国产综合一区二区 | 一区二区不卡国产精品| 亚洲中文字幕精品无人区| 欧美激情一区二区三区成人| 国产日韩精品视频无码| 丰满少妇被猛烈进出69影院| 成人亚洲精品一区二区三区| 午夜精品亚洲一区二区三区| 亚洲国产成人精品女人久久久| 护士张开腿被奷日出白浆| AV最新高清无码专区| 久久综合九色综合97婷婷| 亚洲欧美v国产蜜芽tv | 国产mv在线天堂mv免费观看| A级孕妇高清免费毛片| 习水县| 日韩精品不卡一区二区三区| 国产盗摄xxxx视频xxxx| 综合色一色综合久久网| 久久天堂无码av网站| 国产极品粉嫩尤物一区二区| 久久99久国产精品66| 日韩高清不卡免费一区二区| 丁香五月亚洲综合在线国内自拍| 亚洲av永久无码精品网站| 国产精品白浆在线观看免费| 国产资源精品中文字幕| 人妻中文字幕精品系列| 亚洲最大av一区二区| 又粗又大又硬又长又爽| 亚洲精品国产精品乱码不| 国产福利社区一区二区| 辽阳市| 99国产欧美另类久久久精品| 欧美精品国产综合久久| 日本高清在线播放一区二区三区| 亚洲一国产一区二区三区| 国产成人欧美一区二区三区在线 |