6

我在冻结我的程序时遇到问题。我将其缩小到 scipy 模块。我试图冻结的 porgramm 是:

from scipy import signal
signal.hann(1000)

我的设置脚本是:

import sys
from cx_Freeze import setup, Executable

build_exe_options = {}

base = None
if sys.platform == "win32":
    base = "Win32GUI"

setup(  name = "Some name",
        version = "1.0",
        author="My name",
        description = "My GUI application!",
        options = {"build_exe": build_exe_options},
        executables = [Executable("Script_Name.py", base=base)])
                                    # ^CHANGE THIS NAME!!!

这是错误消息的图片。我还尝试在设置文件中包含 scipy.signal 作为

build_exe_options = {"includes":"scipy.signal"}

但它没有任何好处。请帮我。

4

1 回答 1

8

我有一个类似的问题,可以通过确保:

1 build 目录包含一个名为 _ufunc.pyd 的文件(而不是上面提到的 scipy.special._ufuncs.pyd)。您可以通过指定 build_exe_options 来实现此目的:

build_exe_options = { 'packages': ['scipy'],
                     "include_files": [('path2python\\Lib\\site-packages\\scipy\\special\\_ufuncs.pyd','_ufuncs.pyd')]}

2 确保 ufunc.pyd 使用的所有 dll 也在构建目录中。就我而言, libifcoremd.dll 和 libmmd.dll 失败了。你可以用dependencywalker检查这个

我希望这能够帮到你。

于 2014-03-12T13:07:24.140 回答