python2中使用pyqt5+py2exe打包遇到麻烦

Rainy Chan 2018-12-04 11:59:48
我是使用python2.7.14(64位) py2exe win7编译的,pyqt5(64位)模块做界面,qt的版本是5.5.1
程序在pycharm里运行没问题,用py2exe打包没问题,打包后,在win7下一切正常



但是文件夹整个丢到win10下面,却报错并闪退(文件夹所在的路径也配到了path里面)



这是我程序的源码

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'vbtest.ui'
#
# Created: Sat Aug 25 01:47:58 2018
# by: PyQt5 UI code generator 5.3.2
#
# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtGui, QtWidgets
import sys
from PyQt5 import sip # 解决找不到的包问题

class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(192, 145)
self.label1 = QtWidgets.QLabel(Form)
self.label1.setGeometry(QtCore.QRect(70, 30, 81, 21))
font = QtGui.QFont()
font.setFamily("Times New Roman")
font.setPointSize(10)
font.setBold(True)
font.setWeight(75)
self.label1.setFont(font)
self.label1.setObjectName("label1")
self.Button1 = QtWidgets.QPushButton(Form)
self.Button1.setGeometry(QtCore.QRect(40, 80, 115, 23))
font = QtGui.QFont()
font.setFamily("Times New Roman")
font.setPointSize(10)
font.setBold(True)
font.setWeight(75)
self.Button1.setFont(font)
self.Button1.setObjectName("Button1")

self.retranslateUi(Form)
self.Button1.clicked.connect(self.changeButtonText)
QtCore.QMetaObject.connectSlotsByName(Form)

def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "这是标题"))
self.label1.setText(_translate("Form", "这是标签"))
self.Button1.setText(_translate("Form", "单击切换"))

# 自己添加的内容
def changeButtonText(self):
if self.Button1.text()==u'单击切换':
self.Button1.setText(u'单击切换回来')
else:
self.Button1.setText(u'单击切换')

if __name__=='__main__':
app=QtWidgets.QApplication(sys.argv) #QWidget: Must construct a QApplication before a QWidget
ui=Ui_Form()
Main=QtWidgets.QMainWindow()
ui.setupUi(Main)
Main.show()
app.exec_()


这是我打包脚本的源码


# -*- coding: utf-8 -*-

from distutils.core import setup
import py2exe
options = {"py2exe":{"compressed": 9, #压缩
"optimize": 2,
"dll_excludes": ["MSVCP90.dll",],
# "bundle_files": 1
}}
setup(
console=["slottest.py"],
options=options,
zipfile=None)


求助,有没有遇到类似情况的,win10下pyqt5有没有实现成功了的打包方案
...全文
357 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Rainy Chan 2019-04-25
  • 打赏
  • 举报
回复
已经弃用PyQt5,改用TkInter+PAGE了,果然兼容性好很多,py2 3都行
Rainy Chan 2018-12-06
  • 打赏
  • 举报
回复
引用 1 楼 a616781689 的回复:
用pyinstaller 还有打包后不要放在中文目下运行 我就是win10开发的 还有注意打包的位数 64位python打包就是64位的
打包失败了,我指定了qt的bin目录和pyqt的plugins目录为path 我的Qt是5.5.1的64位,python是2.7.14的64位,pyinstaller用pip安装上的 我Qt在D盘,也不是5.3版本,它为什么会从C盘找5.3?
a616781689 2018-12-05
  • 打赏
  • 举报
回复
用pyinstaller 还有打包后不要放在中文目下运行 我就是win10开发的 还有注意打包的位数 64位python打包就是64位的

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧