将pyd文件嵌入py2exe

时间:2017-03-22 21:40:00

标签: windows cython py2exe pyd

我最近开始尝试使用cython和py2exe来查看是否可以将我的一些python项目转换为独立的Windows二进制文件。到目前为止,我已经成功地使用zipfile = None选项将我的纯python代码转换为包含所有自定义python库的exe。 py2exe生成的“dist”目录非常干净,我的所有库都直接嵌入到exe中。

然而,在使用Cython将我的库转换为.pyd文件后,我遇到了一些问题。当我使用.pyd文件而不是原始.py文件创建新的可执行文件时,py2exe拒绝在可执行文件中包含.pyd文件,而是将它们放在exe的目录中。这些库与以前完全相同,只编译成.pyd格式。

这是我的py2exe setup.py

from distutils.core import setup
import glob
import py2exe

setup_dict = dict(
    windows=[
        {
            "script": "myscript.py",
            "icon_resources": [(1, "myicon.ico")]
        }
    ],
    data_files=[
        ("folder1", ["folder1/file1", "folder1/file2"]),
        ("folder2", ["folder2/file1", "folder2/file2"])
    ],
    options = {
        "py2exe":{
            "includes": ['mylibrary1, 'mylibrary2', 'mylibrary3'],
            "excludes": ['excludedlib1', 'excludedlib2'],
            "dll_excludes": ['crypt32.dll']
        }
    },
    zipfile = None
)

# have to call it twice in order to workaround icon bug
setup(**setup_dict)
setup(**setup_dict)

是否无法在我的可执行文件中包含.pyd以避免混乱目录?这对于库的纯python版本来说不是问题。

如果有办法包含它们,请告诉我。

另请注意我正在运行64位窗口,我不能使用py2exe的“bundle files”选项,因为它只适用于32位系统。

0 个答案:

没有答案