Как сделать приложение .exe на python и PyQT5

Рейтинг: 1Ответов: 1Опубликовано: 26.06.2023

Подскажите как можно компилировать приложение в установочный exe файл, и так чтобы вместе компилировались дополнительные файлы excel, которые нужны для расчета. для примера приложен код.

import sys
import pandas as pd
from PyQt5.QtWidgets import QMainWindow, QLabel, QGridLayout, \
    QWidget, QPushButton, QDialog, QLineEdit, QVBoxLayout, \
    QFormLayout, QMessageBox, QApplication
from PyQt5.QtCore import QSize   


df = pd.read_excel("df.xlsx")
 
class Dialog(QDialog):
    def __init__(self, parent):
        super(Dialog, self).__init__()
        self.parent = parent
        
        self.x = QLineEdit(self)
        self.y = QLineEdit(self)
        self.button = QPushButton('Выполнить расчет.', self)
        self.button.clicked.connect(self.onClicked)

        layout = QFormLayout(self)
        layout.addRow("x:", self.x)
        layout.addRow(QLabel("y:"), self.y)
        layout.addRow('', self.button)
        
    def onClicked(self):
        if self.x.text() and self.x.text():
            try:
                x = float(self.x.text())
                y = float(self.y.text())
            except:
                QMessageBox.information(
                    self, 
                    'Information', 
                    'Некорректно введены данные. Повторите ввод данных.')
                return
                
            self.parent.label.setText(f'{x} + {y} = {x + y:.3f}')
            
            self.close()
        else:
            QMessageBox.information(
                self, 
                'Information', 
                'Нет данных для расчета.')


class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        
        self.centralWidget = QWidget()
        self.setCentralWidget(self.centralWidget)

        self.date = None
        
        self.label = QLabel()
        
        pybutton = QPushButton('Click me', self)
        pybutton.clicked.connect(self.clickMethod)
        
        self.dialog = Dialog(self)
        
        layout = QVBoxLayout(self.centralWidget)
        layout.addWidget(self.label)
        layout.addWidget(pybutton)

    def calc(self):
        self.dialog.exec_()
#        return 10 + 20                 # Данные которые вводятся пользователем

    def clickMethod(self):
        self.date = self.calc()
       

if __name__ == "__main__":
    app = QApplication(sys.argv)
    mainWin = MainWindow()
    mainWin.resize(300, 200)
    mainWin.setWindowTitle("Htllo PyQt")
    mainWin.show()
    sys.exit(app.exec_())

Ответы

▲ 1Принят

Я учился создавать .exe файл по видео уроку "Python в EXE" на Ютуб канале "PythonToday" https://www.youtube.com/watch?v=j5dEJw7dazM&list=PL6T_ONHshl_KhNNAaTXrMjRsp47YBMJ7I&index=1&t=222s