如何使用PyCharm启动远程调试?

如何使用PyCharm启动远程调试?,第1张

如何使用PyCharm启动远程调试

PyCharm(或您的选择依据)充当“服务器”,而您的应用程序是“客户端”;因此,您首先启动服务器-告诉IDE’调试’-然后运行客户端-
这是其中包含

settrace
语句的一些代码。当您的python代码命中时,
settrace
它将连接到服务器pycharm-并开始向其提供调试数据。

要做到这一点:

1.将

pydev
库复制到远程计算机

所以我不得不将文件复制

C:Program FilesJetBrainsPyCharm 1.5.3pycharm-debug.egg
到我的linux机器上。我把它放在
/home/john/api-dependancies/pycharm-debug.egg

2.将鸡蛋放入PYTHONPATH中

希望您了解除非Python能够找到它,否则您将无法使用它。我想大多数人都使用easy_install,但在我的实例中,我通过添加以下内容明确添加了它:

   import sys   sys.path.append('/home/john/app-dependancies/pycharm-debug.egg')

这仅是必要的,因为我仍然无法成功安装鸡蛋。这是我的解决方法。

3.设置调试服务器配置

在PyCharm中,您可以通过以下方式配置调试服务器:

  • 运行 -> 编辑配置 :打开“运行/调试配置”对话框
  • 默认值 ->“ Python远程调试”:是要使用的模板
  • 填写本地主机名和端口,您可能会想“使用路径映射”,但在下面的更多内容中…
  • “好”

本地主机名 :表示 服务器 的名称-在我的情况下就是Windows主机-
或实际上是Windows主机的IP地址,因为我的远程计算机不知道该主机名。因此,虚拟(远程)计算机必须能够访问主机。

ping
并且
netstat
对此有好处。

端口 :可以是您喜欢的任何空的非特权端口。例如:

21000
不太可能被使用。

现在不用担心路径映射。

4.启动调试服务器

  • 运行 -> 调试 :启动调试服务器-选择刚创建的配置。

调试控制台选项卡将出现,您应该获得

 Starting debug server at port 21000

在控制台中,这意味着ide调试服务器正在等待您的代码打开与其的连接。

5.插入代码

这在单元测试中起作用:

from django.test import TestCaseclass APITestCase(TestCase):    def test_remote_debug(self):        import sys        sys.path.append('/home/john/dependancies/pycharm-debug.egg')        from pydev import pydevd        pydevd.settrace('192.168.33.1', port=21000, suspend=False)        print "foo"

在django网络应用程序中,您放置它的位置有点挑剔-似乎只有在完成所有其他 *** 作后才能起作用:

if __name__ == "__main__":    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings")    from django.core.management import execute_from_command_line    execute_from_command_line(sys.argv)    sys.path.append('/vagrant/pycharm-debug.egg')    import pydevd    pydevd.settrace('192.168.33.1', port=21000, suspend=False)

同样,IP地址是运行Pycharm的框;您应该可以从运行代码/网站的框中ping该IP地址。端口是您的选择,只需确保已告诉pycharm在同一端口上侦听即可。而且我发现它的

suspend=False
问题比默认值少,不仅立即停止运行,因此您不确定它是否正在运行,而且还尝试流式传输到stdin
/ out,这也可能使您感到悲伤。

6.打开防火墙

默认情况下,Windows
7防火墙将阻止您的传入连接。在远程主机上使用netstat,您将能够看到SYN_SENT从未建立过,至少直到您向Windows防火墙中为应用程序“
pycharm”添加了例外之前,它都没有建立。

OS / X和Ubuntu没有防火墙来扑朔迷离(默认情况下,可能有人稍后再应用)。

7.设置一个断点并运行代码

毕竟,当一切按计划进行时,您可以设置一个断点-在settrace运行后的某个位置-pycharm控制台将显示

Connected to pydev debugger (build 107.386)

在“调试器”标签下,变量堆栈将开始工作,您可以逐步执行代码。

8.映射

映射告诉pycharm在哪里可以找到源代码。因此,当调试器说“我正在运行文件/foo/bar/nang.py的393行时,Pycharm可以将该远程绝对路径转换为绝对本地路径…并向您显示源代码。

/Users/john/pre/app/    /opt/bestprice/app//Users/john/pre/master/lib    /opt/bestprice/lib/python2.7/site-packages

做完了



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5630228.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存