Я написал приложение, используя Python с Eel для графического интерфейса c. Этот скрипт использует разные модули, такие как pandas, numpy, sklearn и ibm-db. Последнее, что дало мне больше всего проблем. Когда я запустил команду компиляции, все выглядело нормально, но программа не запустилась, потому что он пропустил ibm dll. Затем я использовал add-binary
, чтобы связать DLL. После этого исполняемый файл работал как шарм.
Пока все хорошо, но возникают проблемы, когда я пытаюсь запустить этот exe-файл на других windows машинах. Я получаю ту же ошибку, с которой сталкивался до добавления двоичного файла для ibm dll.
Моя команда:
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