我正在尝试使用一个容易分发的python程序进行安装,该程序恰好使用scipy。我有两个Windows 10 64位虚拟机。我已经为我的程序安装了一个依赖项,它可以正常运行。另外,我已经安装了pyinstaller并执行了冻结。该程序以第一个VM上的构建用户身份以及第一个VM上的新用户身份正确运行。问题是我在第二个VM上加载dll时出错,我只是将其作为测试进行了测试。
我试图从scipy中找到所有导入并将其作为隐藏导入。我还包含了“额外的dll”。
pyinstaller --windowed --icon="%SCRIPT_FOLDER%\res\icon.ico" --hidden-import=numpy --hidden-import=scipy._lib._util --hidden-import=scipy.special._ufuncs --hidden-import=scipy --hidden-import=scipy.stats --hidden-import=scipy.interpolate --hidden-import=scipy.special --hidden-import=scipy.cluster.hierarchy --paths C:\Users\User\AppData\Local\Programs\Python\Python37\Lib\site-packages\scipy\extra-dll --workpath "%WORK_FOLDER%" --distpath "%OUTPUT_FOLDER%" "%SCRIPT_FOLDER%\..\something.py" -n something
此外,我可以在scipy / special下的冻结输出文件夹中的正确位置看到引用的dll文件,其中有_ufuncs.cp37-win_amd64.pyd和_ufuncs_cxx.cp37-win_amd64.pyd
该错误专门在“来自scipy import special”行上生成。
值得注意的是,尽管我想它并没有多大帮助,但我在OSX和Linux平台上遵循了类似的步骤,没有此类问题,也不需要任何手动的隐藏导入规范...
非常感谢您可以提供帮助以找出问题所在。