【发布时间】:2022-01-04 12:12:03
【问题描述】:
我正在尝试使用 Windows (10) 中的 pyinstaller 使我的 python 脚本可执行。 pyinstaller 进程没有任何问题,但是当我启动 .exe 时,只要程序到达需要使用 scipy 中的任何内容的步骤,它就会崩溃而没有错误消息 - 如果没有为用户安装 anaconda。如果 anaconda 存在,则没有问题(但我不能让该程序的未来用户安装 anaconda)。我通过查找这个问题推测问题是.exe找不到使用这些scipy模块所必需的.dll,但我不知道如何将它们添加到.exe(我尝试使用hiddenimports,我尝试将 anaconda3\myenv\Lib\site-packages 文件夹添加到 pyinstaller 查找这些内容的路径中)。我找到了一些解决方案,指出我应该在某处找到一个 extra-dll 文件夹并将其包含在 .spec 文件中,但它似乎对我来说不见了。
具有相同问题的最少可重现代码(基本上是从 curve_fit 文档中复制的):
import scipy.optimize as opt
import numpy as np
def func(x, a, b, c):
return a * np.exp(-b * x) + c
xdata = np.linspace(0, 4, 50)
y = func(xdata, 2.5, 1.3, 0.5)
y_noise = np.random.normal(0,1,50)
ydata = y + y_noise
popt, pcov = opt.curve_fit(func, xdata, ydata)
print(popt)
python 2.7(是的,我知道,但我坚持使用它),anaconda 最新版本,pyinstaller 3.5,scipy 1.2.1
【问题讨论】:
标签: python python-2.7 scipy pyinstaller exe