我正在尝试将此pyQt5程序转换为exe以在linux上执行它。但是我遇到了一些错误。我已经尝试使用pyinstaller以及auto-py-to-exe。
from PyQt5 import QtCore, QtGui, QtWidgets
import subprocess
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(948, 712)
self.label = QtWidgets.QLabel(Dialog)
self.label.setGeometry(QtCore.QRect(330, 120, 281, 51))
font = QtGui.QFont()
font.setPointSize(28)
font.setBold(True)
font.setWeight(75)
self.label.setFont(font)
self.label.setObjectName("label")
self.pushButton = QtWidgets.QPushButton(Dialog)
self.pushButton.setObjectName("pushButton")
self.pushButton.clicked.connect(self.start_server)
self.pushButton.setGeometry(QtCore.QRect(330, 270, 261, 51))
font = QtGui.QFont()
font.setPointSize(24)
font.setBold(True)
font.setWeight(75)
self.pushButton.setFont(font)
self.pushButton.setObjectName("pushButton")
self.retranslateUi(Dialog)
QtCore.QMetaObject.connectSlotsByName(Dialog)
def retranslateUi(self, Dialog):
_translate = QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
self.label.setText(_translate("Dialog", "Start Program"))
self.pushButton.setText(_translate("Dialog", "Press to start"))
def start_server(self):
subprocess.Popen(["OutlierDetectionPythonToExe/bin/python", "notFinal_UI_DetectOutliers.py"])
self.pushButton.setDisabled('True')
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
Dialog = QtWidgets.QDialog()
ui = Ui_Dialog()
ui.setupUi(Dialog)
Dialog.show()
sys.exit(app.exec_())
我收到此错误。...
Traceback (most recent call last):
File "src/gevent/greenlet.py", line 854, in gevent._gevent_cgreenlet.Greenlet.run
File "/home/gaurav/.local/lib/python3.8/site-packages/eel/__init__.py", line 259, in _process_message
return_val = _exposed_functions[message['name']](*message['args'])
File "/home/gaurav/.local/lib/python3.8/site-packages/auto_py_to_exe/ui.py", line 101, in export_configuration
file_path = dialogs.ask_file_save_location('json')
File "/home/gaurav/.local/lib/python3.8/site-packages/auto_py_to_exe/dialogs.py", line 95, in ask_file_save_location
return file_path if file_path.endswith('.json') else file_path + '.json'
AttributeError: 'tuple' object has no attribute 'endswith'
2020-09-15T14:59:46Z <Greenlet at 0x7f07ed589150: _process_message({'call': 5.353588735350904, 'name': 'export_config, <geventwebsocket.websocket.WebSocket object at 0x7)> failed with AttributeError
答案 0 :(得分:0)
PyInstaller
doesn't support 3.8 yet;使该补丁正常工作的补丁已应用于主干,但在4.1版本(当前版本为4.0)发布之前不会成为PyInstaller
的一部分。使用较旧的Python,或等待4.1版本发布。