当前位置:  开发笔记 > 编程语言 > 正文

在py2exe构建中包含PYD/DLL

如何解决《在py2exe构建中包含PYD/DLL》经验,为你挑选了1个好方法。

我的应用程序的一个模块使用.pyd文件中的函数.有一个选项可以排除dlls(exclude_dlls),但有一个包含它们吗?尽管复制了其余的文件(.py),构建过程似乎并没有复制模块中的.pyd.我还需要包含一个.dll.如何让py2exe包含.pyd和.dll文件?



1> Tony Meyer..:

.pyd和.DLL在这里是不同的,因为.pyd应该由modulefinder自动找到并且包含在内(只要你有适当的"import"语句),而不需要做任何事情.如果错过了一个,你会做同样的事情,好像错过.py文件(它们都只是模块):使用py2exe选项的"include"选项.

Modulefinder不一定会找到.DLLs的依赖项(py2exe可以检测到一些),因此您可能需要使用'data_files'选项显式包含这些依赖项.

例如,你要包含两个.DLL('foo.dll'和'bar.dll'),以及三个.pyd('module1.pyd','module2.pyd'和'module3.pyd')到包括:

setup(name='App',
      # other options,
      data_files=[('.', 'foo.dll'), ('.', 'bar.dll')],
      options = {"py2exe" : {"includes" : "module1,module2,module3"}}
     )


在当前版本的py2exe中,data_files应如下所示:data_files = [(DIR,[FILE,FILE,FILE]),...]
当我这样做时,我需要使用"包含"而不是"包含"或py2exe抱怨.
推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有