Python 导入错误: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:SkripsiColorHarmonization-mastertargetColorHarmonization>ColorHarmonization.exe
d:skripsicolorharmonization-mastervenvlibsite-packagesPyInstallerloaderpyimod03_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:skripsicolorharmonization-mastervenvlibsite-packagesPyInstallerloaderpyimod03_importers.py", line 627, in exec_module
exec(bytecode, module.__dict__)
File "util.py", line 8, in <module>
File "d:skripsicolorharmonization-mastervenvlibsite-packagesPyInstallerloaderpyimod03_importers.py", line 627, in exec_module
exec(bytecode, module.__dict__)
File "libsite-packagessklearn__init__.py", line 82, in <module>
File "d:skripsicolorharmonization-mastervenvlibsite-packagesPyInstallerloaderpyimod03_importers.py", line 627, in exec_module
exec(bytecode, module.__dict__)
File "libsite-packagessklearnbase.py", line 20, in <module>
File "d:skripsicolorharmonization-mastervenvlibsite-packagesPyInstallerloaderpyimod03_importers.py", line 627, in exec_module
exec(bytecode, module.__dict__)
File "libsite-packagessklearnutils__init__.py", line 27, in <module>
File "d:skripsicolorharmonization-mastervenvlibsite-packagesPyInstallerloaderpyimod03_importers.py", line 627, in exec_module
exec(bytecode, module.__dict__)
File "libsite-packagessklearnutilsfixes.py", line 18, in <module>
File "d:skripsicolorharmonization-mastervenvlibsite-packagesPyInstallerloaderpyimod03_importers.py", line 627, in exec_module
exec(bytecode, module.__dict__)
File "libsite-packagesscipystats__init__.py", line 384, in <module>
File "d:skripsicolorharmonization-mastervenvlibsite-packagesPyInstallerloaderpyimod03_importers.py", line 627, in exec_module
exec(bytecode, module.__dict__)
File "libsite-packagesscipystatsstats.py", line 179, in <module>
File "d:skripsicolorharmonization-mastervenvlibsite-packagesPyInstallerloaderpyimod03_importers.py", line 627, in exec_module
exec(bytecode, module.__dict__)
File "libsite-packagesscipyspatial__init__.py", line 102, in <module>
File "d:skripsicolorharmonization-mastervenvlibsite-packagesPyInstallerloaderpyimod03_importers.py", line 627, in exec_module
exec(bytecode, module.__dict__)
File "libsite-packagesscipyspatial_procrustes.py", line 11, in <module>
File "d:skripsicolorharmonization-mastervenvlibsite-packagesPyInstallerloaderpyimod03_importers.py", line 627, in exec_module
exec(bytecode, module.__dict__)
File "libsite-packagesscipylinalg__init__.py", line 195, in <module>
File "d:skripsicolorharmonization-mastervenvlibsite-packagesPyInstallerloaderpyimod03_importers.py", line 627, in exec_module
exec(bytecode, module.__dict__)
File "libsite-packagesscipylinalgmisc.py", line 5, in <module>
File "d:skripsicolorharmonization-mastervenvlibsite-packagesPyInstallerloaderpyimod03_importers.py", line 627, in exec_module
exec(bytecode, module.__dict__)
File "libsite-packagesscipylinalgblas.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

我在这个线程上的回答可能有助于在fbs freeze中包含各种资源。

在您的情况下,您可以检查libsite-packagesscipylinalgblas.py", line 215以查看引用的.dll

找不到"google-api-python-client"发行版,并且是带有pyinstaller的应用程序所必需的

最新更新