将 CX_Freeze 与 Scipy 一起使用:scipy.special._ufuncs.py
Posted
技术标签:
【中文标题】将 CX_Freeze 与 Scipy 一起使用:scipy.special._ufuncs.py【英文标题】:Using CX_Freeze with Scipy: scipy.special._ufuncs.py 【发布时间】:2013-10-28 11:35:39 【问题描述】:我在冻结我的程序时遇到问题。我将其缩小到 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"
但它没有任何好处。请帮帮我。
【问题讨论】:
在this question,提问者发现重命名构建目录中的库修复了它。你在构建目录中有一个名为scipy.special._ufuncs.pyd
(或.dll
)的文件吗?您可以尝试将其重命名为 _ufuncs.pyd
(或 .dll
)吗?
我已经通过从 numpy\core 复制 libmmd.dll 和 libifcoremd.dll 来修复它
【参考方案1】:
我遇到了类似的问题,可以通过以下方式解决:
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 进行检查
希望对你有所帮助。
【讨论】:
以上是关于将 CX_Freeze 与 Scipy 一起使用:scipy.special._ufuncs.py的主要内容,如果未能解决你的问题,请参考以下文章
将 cx_freeze 与 mysql-connector 一起使用
无法为 Python 3.7 64 位安装 cx_Freeze 或 scipy
cx_Freeze:主脚本中的 Python 错误 - ModuleNotFoundError:没有名为 'scipy.spatial.ckdtree 的模块