Hi, chuyện là em đang thử làm một app command line(Hơi hơi kiểu giống nhúng màn hình console vào gui) bằng pyqt5 và đóng gói exe bằng pyinstaller
Lệnh đóng gói của em: pyinstaller --windowed --onefile main.py
Nhưng sau khi thử chạy chương trình với bất kỳ lệnh gì nhập lên app command line thì bị crash
Mà nếu em dùng pyinstaller --windowed main.py
hoặc pyinstaller --onefile main.py
thì test chạy vẫn ngon nghẻ
Em đoán già đoán non là lỗi đường dẫn os hay gì đấy mà vẫn chưa biết cách xử lý. Mấy bác cho e xin cách xử lý . Thanks!
Em không biết nên đặt title kiểu gì cho nó hợp lý, admin thấy có thể sửa !
file main.py:
import sys
import os
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QPlainTextEdit, QHBoxLayout, QVBoxLayout
class MyApp(QWidget):
def __init__(self):
super().__init__()
self.window_width, self.window_height = 1200, 1500
self.setMinimumSize(self.window_width, self.window_height)
self.setWindowTitle('Command Line App')
layout = QVBoxLayout()
self.setLayout(layout)
self.editorCommand = QPlainTextEdit()
layout.addWidget(self.editorCommand, 3)
self.editorOutput = QPlainTextEdit()
layout.addWidget(self.editorOutput, 7)
buttonLayout = QHBoxLayout()
layout.addLayout(buttonLayout)
self.button_run = QPushButton('&Run Command', clicked=self.runCommand)
buttonLayout.addWidget(self.button_run)
self.button_clear = QPushButton('&Clear', clicked=lambda: self.editorOutput.clear())
buttonLayout.addWidget(self.button_clear)
self.editorCommand.insertPlainText('dir')
def runCommand(self):
command_line = self.editorCommand.toPlainText().strip()
p = os.popen(command_line)
if p:
self.editorOutput.clear()
output = p.read()
self.editorOutput.insertPlainText(output)
if __name__ == '__main__':
app = QApplication(sys.argv)
app.setStyleSheet('''
QWidget {
font-size: 30px;
}
''')
myApp = MyApp()
myApp.show()
try:
sys.exit(app.exec_())
except SystemExit:
print('Closing Window...')
Note: em có hỏi trên stackoverflow nhưng tiếng anh cùi mìa nên chưa ai trả lời: https://stackoverflow.com/questions/68648070/program-packaged-by-pyinstaller-crashes-when-running