【问题标题】:Debugging embedded Python调试嵌入式 Python
【发布时间】:2020-08-24 11:43:39
【问题描述】:

我遵循了有关嵌入和扩展 Python 运行时的官方 Python 文档。虽然我设法让它工作,但我不知道如何同时调试 c++ 和 Python 代码。

Visual Studio 提供了混合模式调试选项,您可以在其中单步执行代码并从 c++ 断点跳转到 Python 断点。我已经尝试关注官方的 microsoft 文档,并且我得到了它的工作,但仅适用于 c/c++ 扩展。当解释器被嵌入时,我无法让它工作,也找不到任何关于如何让它工作的资源。

是否可以嵌入解释器并仍然能够在 Visual Studio 中同时调试 Python 和 c++ 代码?

【问题讨论】:

    标签: python c++ visual-studio debugging mixed-mode


    【解决方案1】:

    好吧,原来我犯了几个错误。

    官方文档是指调试 Python 的 c++ 扩展。 Microsoft 文档将“Visual Studio 的 Python 工具”包称为您需要在 Visual Studio 安装程序中安装以进行混合模式调试的必要包。很公平。然而,混合模式调试的文档只探讨了使用 Python 调试 c++ 扩展的场景。 发生的情况是,当您安装 Python 工具时,Visual Studio 会安装它自己的 Python 副本(或 Python 的多个版本)。您可以选择在 Python 环境窗口中使用的解释器版本。 但我试图调试在嵌入式解释器中运行的 Python 代码!发生的事情是,Visual Studio 启动了一个独立的 Python 解释器。它附加了一个调试器,但很自然,它没有运行任何代码,因为所有 Python 脚本都在嵌入式解释器上运行。

    然后解决方案如下(我使用的是 cPython):

    1. 为 Visual Studio 安装 Python 工具。这包含 Python 调试器。
    2. 将 cPython 从源代码构建到目录。请注意,Python 需要两个目录:构建它的目录和克隆 cPython 存储库的目录。稍后我将参考这些目录。在 Windows 上,您可以使用提供的 PC 构建脚本构建 Python。
    3. 关于嵌入解释器请参考Python官方documentation。您需要从存储库中添加包含文件并链接第 2 步中构建的库。
    4. 您需要为嵌入式解释器创建一个 Visual Studio Python 环境。此环境设置让 Visual Studio 知道不要使用它自己的解释器。在 Python 环境窗口中,添加一个新环境:使用 Python 构建目录作为前缀路径。从此,visual studio 将找出大部分其他领域。最后,您可以向此环境添加自定义 PATH 环境变量。嵌入式解释器需要知道 Python 标准库以及其他构建工件的位置。只需将步骤 2 中记下的两个目录附加到 PATH 环境变量中(如“PATH=%PATH%;dir\to\build\python;dir\to\repositories\cpython”,不带引号)。
    5. 最后,您需要切换到 Python\native 调试并选择新的 Python 环境。

    【讨论】:

      猜你喜欢
      • 2010-10-21
      • 2019-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多