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

thr*_*434 6 python scipy cx-freeze

我在冻结我的程序时遇到问题.我把它缩小到了scipy模块.我试图冻结的porgramm是:

from scipy import signal
signal.hann(1000)
Run Code Online (Sandbox Code Playgroud)

我的设置脚本是:

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!!!
Run Code Online (Sandbox Code Playgroud)

这是错误消息图片.我也尝试在设置文件中包含scipy.signal

build_exe_options = {"includes":"scipy.signal"}
Run Code Online (Sandbox Code Playgroud)

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

小智 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')]}
Run Code Online (Sandbox Code Playgroud)

2确保ufunc.pyd使用的所有dll也在构建目录中.在我的情况下,libifcoremd.dll和libmmd.dll失败了.您可以使用dependencywalker进行检查

我希望这能够帮到你.