2 回答
TA贡献1798条经验 获得超7个赞
类似的问题影响 cx_Freeze 6.1 或 6.2:可执行文件不启动,没有错误消息或
INTEL MKL 错误:找不到指定的模块。mkl_intel_thread.dll。
英特尔 MKL 致命错误:无法加载 mkl_intel_thread.dll。
配置:
视窗 10
从https://www.python.org/安装的 Python 3.8.5
numpy 1.19.1+mkl 使用来自https://www.lfd.uci.edu/~gohlke/pythonlibs/ 的轮子通过 pip 安装
使用pip安装的各种python模块
这也可以在 Python 3.6.8 或更早版本的 numpy 中观察到,例如 1.18.4+mkl 或 1.19.0+mkl。
我观察到 cx_Freeze在构建目录的子目录中包含 3 个 DLL mkl_rt.dll
、python38.dll
和,而原始安装在子目录中不包含任何 DLL (所有 DLL 都在 中)。如果我在使用 cx_Freeze 构建应用程序后手动从构建目录的子目录中删除,问题就会消失并且应用程序可以运行。vcruntime140.dll
lib\numpy\core
site-packages\numpy\core
site-packages\numpy\DLLs
mkl_rt.dll
lib\numpy\core
该解决方案可以通过在setup.py
脚本末尾添加以下代码来实现:
numpy_core_dir = os.path.join(dist_dir, 'lib', 'numpy', 'core')
for file_name in os.listdir(numpy_core_dir):
if file_name.lower().endswith('.dll'):
file_path = os.path.join(numpy_core_dir, file_name)
os.remove(file_path)
其中dist_dir是通过cx_Freeze生成生成目录(传递给build_exe选项)。
添加回答
举报