#python-3.x #pyqt5 #pyinstaller
Вопрос:
Я написал код с PyQt5 и пытаюсь создать исполняемый файл, чтобы открыть его на другом компьютере.
Я использую Python 3.9.7 и автоматическое преобразование в exe
Глава моей main.py выглядит так:
#!/usr/bin/python # -*- coding: utf-8 -*- import os import sys from functools import partial import entries import database_operation import extended_combobox import login import message_box from PyQt5 import QtGui from PyQt5 import QtCore from PyQt5.QtWidgets import QMainWindow, QFileDialog, QMessageBox from PyQt5.QtWidgets import QApplication from PyQt5.uic import loadUiType
Моя иерархия папок выглядит следующим образом:
root |-main.py |-entries.py |-database_operation.py |-extended_combobox.py |-login.py |-message_box.py
Командная строка из auto-py-to-exe выглядит следующим образом
pyinstaller --noconfirm --onefile --console "path/to/my/file/main.py"
Поэтому при попытке выполнить main.exe, У меня есть эта ошибка
C:UsersAdmingt;C:UsersAdminoutputmain.exe Traceback (most recent call last): File "foldermain.py", line 8, in lt;modulegt; ModuleNotFoundError: No module named 'entries' [11892] Failed to execute script 'main' due to unhandled exception!
Что я делаю не так?
Комментарии:
1. Находятся ли оба файла в одном и том же месте? main.exe это просто main.py замаскировано, поэтому для этого нужны все модули, которые вы импортировали. операционная система, система и другие встроенные модули будут включены в exe, но пользовательские модули не будут включены. Вам необходимо вручную переместить дополнительные зависимости и исполняемый файл в один и тот же каталог.
2. Я понял это, мне пришлось добавить каталог в свою команду pyinstaller
-p DIR
, чтобы она учитывала другие модули, которые я сделал.