1

我在一个 Com Server DLL 中工作,我使用请求将 POST 与一些 XML 文件一起制作为多部分表单。Localy,它工作得很好,没有错误。我可以调用 COM 对象方法,它会返回我想要的内容。

现在,当我使用 py2exe 构建应用程序的 dist 版本并尝试使用 regsvr32 注册 DLL Com 服务器时,我收到以下错误:“运行时错误!... R6034 应用程序已尝试加载 C运行时库不正确。...”另外,我注意到,如果我在我的 python 代码中删除对请求库的任何引用,我不会遇到这个问题(显然,我已经失去了模块的主要功能) .

我尝试以各种可能的方式使用清单解决方案分发 C 运行时 DLL。还从 microsoft redistributable 安装程序安装了运行时。一点效果都没有。我可以肯定它与运行时本身无关。

使用 W7 和 XP 制作虚拟机,用于测试目的。我可以用regsvr32注册Com服务器,但是调用方法时出现错误。但是,如果我用请求库注释我进行 POST 的行,或者如果我调用另一个不涉及请求的方法,则不会发生错误并且一切似乎都工作正常。当然,COM 的关键功能丢失了,因为一切都围绕请求库。而且我真的不想使用原始的 urllib 库...

我的结论:似乎与 py2exe 和请求库有关。必须缺少一些依赖项。虽然我不知道是什么或为什么,因为 py2exe 似乎正在打包所有东西......以前用 py2exe 分发 COM 服务器从来没有任何问题。有没有人对py2exe和请求有任何类似的问题???

4

1 回答 1

0

似乎与py2exe com dll 问题非常相似。也许它只是打包 C 运行时 DLL或在您要部署到的机器上安装Visual C++ 2008 Redistributable的问题。

于 2013-04-24T16:56:03.320 回答