首页 > 解决方案 > Python ImportError:DLL加载失败:在fman构建系统(fbs)上找不到指定的模块

问题描述

当我尝试使用 fman 构建系统 (fbs) 将我的 python 脚本转换为 EXE 时遇到错误。当我尝试在虚拟环境中的 cmd 中在 Python 3.6 上运行程序时发生此错误。

我正在使用 Python 3.6 和 pyinstaller 3.4。下面是我正在使用的库列表。

altgraph (0.17)
cycler (0.10.0)
fbs (0.8.4)
future (0.18.2)
joblib (0.14.1)
kiwisolver (1.1.0)
macholib (1.14)
matplotlib (3.1.2)
numpy (1.18.1)
opencv-contrib-python (4.1.2.30)
opencv-python (4.1.2.30)
pefile (2019.4.18)
pip (9.0.1)
PyInstaller (3.4)
pyparsing (2.4.6)
PyQt5 (5.9.2)
python-dateutil (2.8.1)
pywin32-ctypes (0.2.0)
scikit-learn (0.22.1)
scipy (1.4.1)
setuptools (39.1.0)
sip (4.19.8)
six (1.14.0)
webcolors (1.10)

以下是我收到的错误:

(venv) D:\Skripsi\ColorHarmonization-master\target\ColorHarmonization>ColorHarmonization.exe
d:\skripsi\colorharmonization-master\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py:627: MatplotlibDeprecationWarning:
The MATPLOTLIBDATA environment variable was deprecated in Matplotlib 3.1 and will be removed in 3.3.
  exec(bytecode, module.__dict__)
Traceback (most recent call last):
  File "main.py", line 7, in <module>
  File "d:\skripsi\colorharmonization-master\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 627, in exec_module
    exec(bytecode, module.__dict__)
  File "util.py", line 8, in <module>
  File "d:\skripsi\colorharmonization-master\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 627, in exec_module
    exec(bytecode, module.__dict__)
  File "lib\site-packages\sklearn\__init__.py", line 82, in <module>
  File "d:\skripsi\colorharmonization-master\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 627, in exec_module
    exec(bytecode, module.__dict__)
  File "lib\site-packages\sklearn\base.py", line 20, in <module>
  File "d:\skripsi\colorharmonization-master\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 627, in exec_module
    exec(bytecode, module.__dict__)
  File "lib\site-packages\sklearn\utils\__init__.py", line 27, in <module>
  File "d:\skripsi\colorharmonization-master\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 627, in exec_module
    exec(bytecode, module.__dict__)
  File "lib\site-packages\sklearn\utils\fixes.py", line 18, in <module>
  File "d:\skripsi\colorharmonization-master\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 627, in exec_module
    exec(bytecode, module.__dict__)
  File "lib\site-packages\scipy\stats\__init__.py", line 384, in <module>
  File "d:\skripsi\colorharmonization-master\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 627, in exec_module
    exec(bytecode, module.__dict__)
  File "lib\site-packages\scipy\stats\stats.py", line 179, in <module>
  File "d:\skripsi\colorharmonization-master\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 627, in exec_module
    exec(bytecode, module.__dict__)
  File "lib\site-packages\scipy\spatial\__init__.py", line 102, in <module>
  File "d:\skripsi\colorharmonization-master\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 627, in exec_module
    exec(bytecode, module.__dict__)
  File "lib\site-packages\scipy\spatial\_procrustes.py", line 11, in <module>
  File "d:\skripsi\colorharmonization-master\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 627, in exec_module
    exec(bytecode, module.__dict__)
  File "lib\site-packages\scipy\linalg\__init__.py", line 195, in <module>
  File "d:\skripsi\colorharmonization-master\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 627, in exec_module
    exec(bytecode, module.__dict__)
  File "lib\site-packages\scipy\linalg\misc.py", line 5, in <module>
  File "d:\skripsi\colorharmonization-master\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 627, in exec_module
    exec(bytecode, module.__dict__)
  File "lib\site-packages\scipy\linalg\blas.py", line 215, in <module>
ImportError: DLL load failed: The specified module could not be found.
[14240] Failed to execute script main

标签: pythonpython-3.6pyinstallerfbs

解决方案


在 PyInstaller 3.4 中,一些用于 scipy 的动态库可能没有正确加载,因为它们的位置已更改为不同的目录,即在 site-packages/scipy/.libs 下

您需要编辑PyInstaller/hooks/hook-scipy.py文件,以便在 site-packages/scipy/.libs 下搜索库

可以在 此处找到修复程序 ,您可以从github获取最新文件

如果您的应用程序也依赖于 numpy 模块,您可能还需要编辑PyInstaller/hooks/hook-numpy.py


推荐阅读