将CX_Freeze与Scipy一起使用:scipy.special._ufuncs.py

时间:2013-10-28 11:35:39

标签: python scipy cx-freeze

我在冻结我的程序时遇到问题。我把它缩小到了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!!!

这是picture of the error message。我也尝试在设置文件中包含scipy.signal

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

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

1 个答案:

答案 0 :(得分:8)

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

来解决

1构建目录包含一个名为_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也在build目录中。在我的情况下,libifcoremd.dll和libmmd.dll失败了。您可以使用dependencywalker

进行检查

我希望这可以帮助你。