我使用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