3

我使用 Enthought Canopy 作为我的 Python 发行版,因为它适用于科学计算。但是,我在 Visual Studio 中使用pytools作为我的 IDE,主要是因为与其他 Windows IDE 相比,它具有出色的调试功能。

从 2.0 版开始,pytools 提供了一个原生 C 调试器(混合模式调试器或 MMD),它在使用 cython 或包含一些原生 C 代码时非常有用,并且应该比标准调试器快得多,这使得它调试计算量大的代码是可行的,否则在启用调试的情况下运行速度会太慢。

不幸的是,pytools MMD需要调试符号才能工作,这些符号可用于标准 python 发行版,但是他们注意到

如果您使用第三方 Python 发行版,例如 ActiveState Python 或 Enthought Canopy,则需要联系该发行版的作者以向您提供符号。

我无法在 Enthought 的任何地方找到这些调试符号,所以我想知道:

a) Enthought 是否计划为 pytools 用户提供调试符号

b) 如果不是,有哪些可能的解决方法?

4

2 回答 2

4

Enthought Canopy 1.2 将于本月晚些时候发布,包括完整的 PTVS 集成,包括调试符号。

于 2013-11-16T15:32:08.593 回答
3

(我是为 2.0 编写混合模式调试器的 PTVS 开发人员)

不幸的是,对符号的要求是一项硬要求——它是调试器工作方式的核心。因此,唯一的解决方法是使用具有可用符号的 Python 二进制文件——要么来自 python.org 的库存,要么自己构建它们。这仅适用于 python??.dll,并且,如果您想要 ctypes 步进支持,_ctypes.pyd。

我不知道 Python 的 Enthought 构建是否与常规 Python 显着不同,或者它们是否兼容。但作为一种解决方法,它可能值得一试。

于 2013-11-16T08:23:00.227 回答