Pyinstaller для упаковки скрытого приложения-предупреждение об импорте/исключения

#python #pyinstaller

Вопрос:

Итак, у меня возникли некоторые проблемы с настройкой приложения с помощью компилятора установки Inno, сначала я предположил, что это проблема внутри самого Inno, но при дальнейшем рассмотрении я думаю, что это мой настоящий exe-файл. Я могу создать рабочий exe-файл, который правильно запускает мою программу, но только на моем собственном компьютере. Я могу создать установочный файл, который также работает с помощью Inno setup, но он работает только на моем собственном компьютере. Я отправил как сам exe-файл, так и установочный файл Inno на другой компьютер, загрузил его туда и запустил, оба соответствуют одному и тому же "Fatal Error: failed to run script tk_app.py" . Следовательно, проблема, должно быть, в том, что я не смог правильно запустить приложение с помощью pyinstaller.

В моем prgoram всего 5 файлов (все в одной папке): main.py, file1.py, file2.py file3.py, tk_app.py

Все они импортируют друг друга и используют библиотеки python. Я знаю, что pyinstaller поддерживает библиотеки, такие как pandas, tkinter и многие другие, без необходимости в --hidden-impoort= команде, и что он будет собирать все файлы в программе, если есть файлы, которые импортируют друг друга.

Поэтому я использую файл tk_app.py (который содержит мой пользовательский интерфейс tkinter и импорт main.py , который затем переходит к импорту file1.py , который импортирует другой файл и так далее).

Командная строка pyinstaller, которую я использую для создания exe, выглядит следующим образом:

PS C:UsersriptaDesktopCODINGCSV_Upload> pyinstaller -w --hidden-import=bs4 --hidden-import=fake_useragent --hidden-import=urllib.prase --hidden-import=urllib.request --hidden-import=os --hidden-import=pandas.io.parsers --icon=trademark_icon.ico --onefile tk_app.py

Мой вопрос в том, сообщит ли pyinstaller мне , когда ему потребуется данный --hidden-import='name' файл при запуске, потому что он не выдает никаких ошибок и создает a spec file , a build folder и a dist folder , содержащие exe-файл.

Я заметил, что он выдает предупреждения или исключения (также не знаю, почему в нем упоминается django, поскольку я вообще не импортирую и не использую его в приложении). :

59182 INFO: Loading module hook 'hook-django.db.backends.py' from 'c:\users\ripta\appdata\local\programs\python\python36-32\lib\site-packages\PyInstaller\hooks'... 61711 WARNING: Hidden import "django.db.backends.__pycache__.base" not found! 61712 INFO: Loading module hook 'hook-django.py' from 'c:\users\ripta\appdata\local\programs\python\python36-32\lib\site-packages\PyInstaller\hooks'... Traceback (most recent call last): File "<string>", line 21, in walk_packages File "c:usersriptaappdatalocalprogramspythonpython36-32libsite-packagesdjangocontribgisadmin__init__.py", line 5, in <module>

Or show Hidden-import not found (Of imports I have no idea about):

149329 WARNING: Hidden import "pkg_resources.py2_warn" not found! 149330 WARNING: Hidden import "pkg_resources.markers" not found!

Тот факт, что скрипт не запускается на любом другом компьютере, кроме моего собственного, заставляет меня думать, что ему, должно быть, не хватает зависимости, которая встречается только на моем компьютере, поэтому я неправильно использую pyinstaller, но не слишком уверен, где именно я совершаю ошибку.