首页 > 解决方案 > scipy包的pyinstaller错误

问题描述

我正在尝试使用以下命令创建一个 exe 文件:

pyinstaller -F myfile.py

我在PyInstaller 中的 No module named 'pandas._libs.tslibs.timedeltas'上遇到错误,它通过创建一个hook-pandas.py包含以下行的文件来解决,如该页面所述。

`hiddenimports = ['pandas._libs.tslibs.timedeltas']`

但现在我收到以下错误:

...
  File "site-packages\scipy\optimize\_trlib\__init__.py", line 1, in <module>
  File "e:\0-anaconda\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 714, in load_module
    module = loader.load_module(fullname)
  File "messagestream.pxd", line 5, in init scipy.optimize._trlib._trlib
ModuleNotFoundError: No module named 'scipy._lib.messagestream'
[4380] Failed to execute script myfile

按照与上面相同的模式,我创建了另一个名为的文件hook-scipy.py并将以下行放入其中:

hiddenimports = ['scipy._lib.messagestream']

但是错误一直存在。问题出在哪里,如何解决?

(我在 Windows 7 操作系统上使用 python 版本 3.6.4 Anaconda 和 pyinstaller 版本 3.3.1)。

标签: pythonscipypyinstaller

解决方案


我最近有一个类似的问题并指定:

hiddenimports=['scipy._lib.messagestream']

是不足够的。至少,在指定以下内容时,我能够解决我的问题:

hiddenimports=['scipy._lib.messagestream', 'scipy']

顺便说一句,这适用于 macOS 上的 Python 3.6.1、PyInstaller 3.3.1 和 scipy 1.2.1。


推荐阅读