在Windows和Linux之间,通过PyCharm对Python远程调试-日常笔记

一、安装PyCharm

1、下载并安装

下载地址:https://download.jetbrains.com/python/pycharm-professional-5.0.4.exe

2、破解(以后再给正版买单吧)

Pycharm504_JetBrainsCrackV2.4

以压缩包内”instructions_pycharm.txt”文件为准

—————————————————————-

本特别文件支持到Pycharm 5.0.4
1. 解压压缩包中的JetbrainsCrack.jar
到/Applications/PyCharm.app/Contents/bin/JetbrainsCrack.jar

2. 打开 /Applications/PyCharm.app/Contents/bin/pycharm.vmoptions

3. 追加一行到文件末尾并存储
“-javaagent:JetbrainsCrack.jar”.
如果不能打开,则改为“-javaagent:绝对路径\JetbrainsCrack.jar”,如
“-javaagent:D:\Soft\PyCharm 5.0.4\bin\JetbrainsCrack.jar”
样例如下
Example of pycharm.vmoptions after editing: (v5.0.4, yours may
vary)
————
-Xms128m
-Xmx750m
-XX:MaxPermSize=350m
-XX:ReservedCodeCacheSize=240m
-XX:+UseCompressedOops
-javaagent:JetbrainsCrack.jar
————

4. 启动Pycharm,使用下面的key注册, 请注意在此之前,断开网络(网线
或者wifi)

Register with this key:
———— 从下面一行开始拷贝 ———
ThisCrackLicenseId-{
“licenseId”:”ThisCrackLicenseId”,
“licenseeName”:”Apple”,
“assigneeName”:””,
“assigneeEmail”:”apple@apple.com”,
“licenseRestriction”:”Apple”,
“checkConcurrentUse”:false,
“products”:[
{“code”:”II”,”paidUpTo”:”2099-12-31″},
{“code”:”DM”,”paidUpTo”:”2099-12-31″},
{“code”:”AC”,”paidUpTo”:”2099-12-31″},
{“code”:”RS0″,”paidUpTo”:”2099-12-31″},
{“code”:”WS”,”paidUpTo”:”2099-12-31″},
{“code”:”DPN”,”paidUpTo”:”2099-12-31″},
{“code”:”RC”,”paidUpTo”:”2099-12-31″},
{“code”:”PS”,”paidUpTo”:”2099-12-31″},
{“code”:”DC”,”paidUpTo”:”2099-12-31″},
{“code”:”RM”,”paidUpTo”:”2099-12-31″},
{“code”:”CL”,”paidUpTo”:”2099-12-31″},
{“code”:”PC”,”paidUpTo”:”2099-12-31″}
],
“hash”:”2911276/0″,
“gracePeriodDays”:7,
“autoProlongated”:false}
——— 拷贝到上面一行为止 ———

确认注册成功之后,重新连接网络

二、配置远程调试环境

转载自:http://blog.leanote.com/post/leoc/remote-debugging-with-pycharm

1、背景描述

在机房中,服务器通过ADB与多台Android设备相连接,并通过Python应用程序(QMSInterceptor)对Android设备进行任务调度。
在开发环境中对QMSInterceptor调试完毕后,上传至服务器,发现程序运行异常;但是在开发环境中再三检查,都没有发现问题。于是就在想,要是可以在服务器环境中进行单步跟踪调试就好了。
然而,在服务器系统上安装一个IDE肯定是不现实的;通过SSH远程到服务器端,采用pdb进行调试虽然可行,但是操作还是较为繁琐,而且也不够直观。
那么,是否可以将开发环境中的IDE与服务器环境相连,实现利用开发环境的IDE调试服务器环境中运行的程序呢?
答案是肯定的,这就是远程调试(Remote Debug)。

2、远程调试的工作原理

远程调试的功能在Eclipse、IntelliJ IDEA等大型IDE中均有支持,实现原理都基本相同,这里采用PyCharm进行说明。

在远程调试的模式下,PyCharm(IDE)扮演服务端(Server)的角色,而运行在远程计算机上的应用程序扮演客户端(Client)的角色。正因如此,进行远程调试时,需要先在本地开发环境中设定端口并启动IDE,IDE会对设定的端口开始监听,等待客户端的连接请求;那远程计算机中的应用程序又是怎样与IDE建立通讯连接的呢?

针对远程调试功能,PyCharm提供了pydevd模块,该模块以pycharm-debug.egg的形式存在于PyCharm的安装路径中。远程计算机安装该库文件后,然后就可以调用pydevd.settrace方法,该方法会指定IDE所在机器的IP地址和监听的端口号,用于与IDE建立连接;建立连接后,便可在IDE中对远程在远程计算机中的程序进行单步调试。

3、远程调试的配置方法

3.1、在远程计算机上安装pydevd模块

  • 在本地开发环境的PyCharm安装路径中找到pycharm-debug.egg文件(若远程计算机运行的是Python3,则需要pycharm-debug-py3k.egg
  • pycharm-debug.egg文件拷贝至远程计算机
  • 在远程计算机中将pycharm-debug.egg添加至引用路径,可以采用多种方式:
    • 采用easy_install pycharm-debug.egg命令进行安装(pip命令无法安装,只能使用easy_install)
    • pycharm-debug.egg添加至PYTHONPATHsys.path:import sys; sys.path.append('/home/leo/app-dependancies/pycharm-debug.egg')
    • 解压pycharm-debug.egg,将其中的pydev文件夹拷贝至远程应用程序目录下
  • 验证:在远程计算机的Python命令行中输入import pydevd,若没有报错则说明安装成功

3.2、在本地开发环境的PyCharm中进行监听配置

  • 【Run】->【Edit Configurations】
  • 【Add New Configuration】->【Python Remote Debug】
  • 填写Local host namePort,其中Local host name指的是本机开发环境的IP地址,而Port则随便填写一个10000以上的即可;需要注意的是,由于远程计算机需要连接至本地开发环境,因此本地IP地址应该保证远程可以访问得到
  • 【Apply】and【OK】

3.3、在本地开发环境的PyCharm中配置Mapping映射

3.4、在远程计算机的应用程序中插入代码

将如下代码插入至远程计算机的应用程序中。

其中,IP地址和端口号要与PyCharm中的监听配置保持一致。

3.5、在PyCharm中启动Debug Server

【Run】->【Debug…】,选择刚创建的远程调试配置项,在Debug Console中会显示如下信息:

这说明Debug Server已经启动并处于监听状态。

3.6、在远程计算机中启动应用程序

在远程计算机中启动应用程序,当执行到pydevd.settrace语句时,便会与本地开发环境中的PyCharm建立通讯连接,接下来便可以在本地IDE中进行单步调试了。

需要注意的是,本地开发环境必须保证IP地址和端口号可从远程计算机访问得到,否则会无法建立连接。

Reference

http://stackoverflow.com/questions/6989965/how-do-i-start-up-remote-debugging-with-pycharm
https://www.jetbrains.com/pycharm/help/remote-debugging.html

 

 

Print Friendly
赞 (0)
分享到:更多 ()

留言板 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址