PY2EXE:如何输出“*_D.PYD”文件(调试)并使用 MSVCR80D.DLL?

0 投票
2 回答
1127 浏览
提问于 2025-04-15 11:21

我的应用程序的调试配置是基于以下内容构建的:

  PYTHON25_D.DLL
  MSVCR80D.DLL

我们在应用程序中使用Python的.PYD文件。其中一些.PYD文件是通过PY2EXE将.PY文件转换而来的。

当我对MYSCRIPT.PY运行PY2EXE时,我得到了以下的.PYD文件和依赖项:

MYSCRIPT.PYD
  PYTHON25.DLL
  MSVCR71.DLL
  KERNEL32.DLL  

想要的是调试版本,它需要与我的应用程序使用的相同C运行时库(MSVCR80D.DLL)构建。

我该如何将MYSCRIPT.PY转换成:

MYSCRIPT_D.PYD                 <-- debug version of .PYD end with "_D"
  PYTHON25_D.DLL               <-- debug version of Python
  MSVCR80D.DLL                 <-- ver 8.0, Debug
  KERNEL32.DLL

这该怎么做呢?

2 个回答

0

这玩意儿不行,因为 MSVCR80D 是一种并行运行时。

你要么告诉用户直接安装微软的运行时,要么手动复制那些清单文件。另外,MSVCR71.DLL 这个文件没有被选中。它是给 Python 用的,所以你可能还是需要保留它。

0

请注意,微软的调试用dll文件是不能随便分发的——你不能把它们给别人。不过,如果你使用调试版本的Python和调试编译版本的py2exe,py2exe会正确地收集所有dll的调试版本。

撰写回答