Pyinstaller exe在其他具有DLL导入错误的计算机上不起作用

时间:2020-02-06 11:41:49

标签: python dll compiler-errors pyinstaller libraries

我使用Python和Eel编写了一个用于前端图形的应用程序。该脚本使用了不同的模块,例如pandas,numpy,sklearn和ibm-db。最后是什么给了我最多的问题。当我运行编译命令时,一切似乎正常,但由于他缺少ibm dll,程序无法启动。然后,我使用add-binary来捆绑DLL。在那之后,可执行文件就像一个魅力。

到目前为止,一切都很好,但是当我尝试在其他Windows计算机上运行此exe时,问题就开始了。在ibm dll的add-binary之前,我遇到了同样的错误。

我的命令是:

python -m eel run.py www --exclude win32com --add-binary C:\Users\me\AppData\Local\Programs\Python\Python37\Lib\site-packages\ibm_db_dlls\ibm_db.dll;ibm_db_dlls --hidden-import sklearn.utils._cython_blas --hidden-import sklearn.neighbors.typedefs --hidden-import sklearn.neighbors.quad_tree --hidden-import sklearn.tree._utils --exclude cryptography --onefile --clean

我已经尝试了--add-file,但是没有运气。同样,将dll放在exe的相同路径或ibm_db_dlls文件夹中也会产生相同的错误。

这是另一台机器上的输出(顺便说一句,我也尝试在其上安装python和所有库以查看是否可以帮助但仍然相同):

Traceback (most recent call last):
  File "run.py", line 10, in <module>
  File "C:\Users\me\AppData\Local\Programs\Python\Python37\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 623, in exec_module
  File "uni_dbutil.py", line 1, in <module>
  File "C:\Users\me\AppData\Local\Programs\Python\Python37\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 623, in exec_module
  File "site-packages\ibm_db.py", line 11, in <module>
  File "site-packages\ibm_db.py", line 9, in __bootstrap__
  File "imp.py", line 342, in load_dynamic
ImportError: DLL load failed: The specified module could not be found.
[12996] Failed to execute script run

如您所见,似乎正在尝试到达原始计算机上的路径,但我不知道为什么或是否是“正常”

不幸的是,此应用程序将由对python或类似知识为零的多个最终用户运行,因此我需要准备好使用该可执行文件。谢谢

编辑:我正在使用Python 3.7

0 个答案:

没有答案