这个Wing小贴士提供了一个Wing Pro调试器可用的配置选项的路线图,以使其更容易理解可用的可能性以及如何将其应用于你的开发项目。
简而言之:Wing可以开发和调试几乎所有类型的Python代码,不管它是驻留在本地还是远程主机上,是在容器还是集群上,不管它是由IDE从外部启动的,也不管它是异步的、线程的还是在多进程中运行的。请继续阅读有关细节。
配置选项
大体上说,有六种方法可以配置Wing的调试器。
本地独立代码-- Wing可以调试独立的脚本和应用程序,这些脚本和应用程序在你的本地机器上运行,并在Wing内部按需启动。这种开发方式可以用于任何方便从IDE中启动的东西,包括脚本、桌面应用程序和大多数Web框架。请参阅调试器快速入门以快速了解这种简单的情况。
远程独立代码--Wing Pro也可以调试运行在远程主机、虚拟机或设备上的独立代码,其方式与调试本地运行代码相同。Wing使用一个由SSH启动的远程代理,以便直接处理存储在远程主机上的文件,就像Wing本身运行在该系统上一样。详情请见Wing Pro的远程开发。
容器和集群代码--Wing Pro可以调试运行在容器上的代码,比如那些由Docker或LXC/LXD托管的容器,或由Docker Compose托管的集群。在这种情况下,编辑、版本控制和搜索操作存储在你的本地磁盘上的文件,但代码是在容器实例的背景下透明地执行和调试的。详情请见与容器和集群一起工作。
本地外部启动的或嵌入的代码-- Wing 可以调试本地运行的代码,这些代码是由 web 服务器或框架启动的,嵌入的 Python 代码是用来为更大的应用程序编写脚本的,以及任何其它不能从 IDE 直接启动的 Python 代码。在这种情况下,代码从 Wing 外部启动,通过导入 Wing 的调试器连接到 IDE。调试可以从 IDE 中控制,也可以通过调试过程中可访问的 API 控制。详情请见调试外部启动的代码
远程外部启动或嵌入式代码--Wing Pro也可以调试运行在远程系统上的外部启动或嵌入式代码。在这种情况下,Wing使用一个远程代理通过SSH访问远程主机,被调试的代码导入Wing的调试器,以便通过自动建立的反向SSH隧道连接回IDE。请参阅调试外部启动的远程代码的简要说明或远程网络开发的更详细指南。
手动配置远程调试-- 对于不能通过SSH访问的远程主机和设备,或者不能运行Wing的远程代理,Wing提供了一个手动配置选项,使这些系统的调试成为可能。在这种情况下,设备必须能够通过TCP/IP连接到Wing运行的主机上,而且必须有一些文件共享配置,以便文件在本地和远程系统上都能使用。在这种方法中,连接、文件共享和其他使调试成为可能的配置是完全手动完成的,所以它可以根据不寻常的自定义环境进行定制。详情请见手动配置的远程调试。
VirtualEnv, pipenv, 和Anaconda环境
在上述背景下,Wing可以使用或不使用由virtualenv、pipenv或Anaconda的conda create所创建的环境。
环境可以与你的 Wing 项目一起创建,正如在创建 Python 环境中所描述的。
另外,也可以在事后选择环境。对于本地调试,这可以通过在项目 属性中设置Python 可执行程序来完成。对于远程调试,它是在远程主机配置中设置的。
对于virtualenv和pipenv,你可以将Python Executable设置为 命令行,并输入 virtualenv 的 Python 的完整路径,或者你可以选择激活的 环境,并输入激活环境的命令。详情请看使用 Wing 与 virtualenv。
对于Anaconda环境,你必须选择激活的 环境,然后从这个字段右边的下拉列表中选择环境。详情请看使用Wing与Anaconda。
如果你正在使用容器或集群,Wing会使用容器所设置和管理的环境。详情请看与容器和集群一起工作。
特定的框架和工具
一些框架和工具需要一些额外的自定义配置,以使它们易于在Wing中工作。除了了解上面解释的一般选项外,为你使用的框架和工具寻找配置细节是个好主意:
- Wing的文档包含了特定框架和工具的配置说明,如Flask、Django、Jupyter、wxPython、PyQt、Blender、Maya和其他。
- 还有一些额外的信息可用于AWS、Docker、Vagrant、Windows Subsystem for Linux、Raspberry Pi等特定类型的远程开发。
从 "项目"菜单中访问的 "新 项目"对话框提供了一些帮助,以便为大多数这些项目设置新的Wing项目。
多线程和多进程调试
Wing自动调试任何多线程的代码,而不需要任何额外的配置。
多进程代码也可以被调试,但需要在项目 属性中打开Debug/Execute >Debug Child Processes选项,然后才能自动调试子进程。在这种情况下,你可能还想配置Wing如何处理和终止子进程的特定选项。详见多进程调试。
现在就这样了!我们将很快回来,为 Wing Python IDE 提供更多的Wing 提示。