python - 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
解决方案
在 PyInstaller 3.4 中,一些用于 scipy 的动态库可能没有正确加载,因为它们的位置已更改为不同的目录,即在 site-packages/scipy/.libs 下
您需要编辑PyInstaller/hooks/hook-scipy.py文件,以便在 site-packages/scipy/.libs 下搜索库
可以在 此处找到修复程序 ,您可以从github获取最新文件
如果您的应用程序也依赖于 numpy 模块,您可能还需要编辑PyInstaller/hooks/hook-numpy.py
推荐阅读
- amazon-web-services - 使用已创建的角色部署 AWS SAM 功能
- gremlin - 获取连接到所有当前顶点的顶点
- php - 在 Symfony 服务中获取路由名称
- javascript - dispatchEvent(new Proxy(event, {}) 不起作用
- c# - 在与调用按钮的父级相同的位置显示表单
- python - 将某些嵌套列表中的最后一项替换为另一个列表的每个连续项
- angular - 将复杂对象绑定到 Angular 6 反应表单复选框
- git - 我怎样才能忽略除 *.cpp 文件之外的所有内容
- c# - 如何在 ASP.NET Core MVC 中的 ViewComponent 中传递超过 4 个参数
- amazon-ec2 - 无法从 AWS ELB 访问 AWS 实例