马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 wnhuiyou 于 2020-9-25 13:41 编辑
我在做一个小程序,通过pycharm来运行的时候,是没有问题的,但是通过 pyinstaller -F -w xxx.py 命令来打包EXE的时候就出现错误,奇怪的是,我在另外一个小测试中打包EXE却可以正常打开,我先把代码贴出来,是哪里出问题了吗?
这是 tp.py
from PyQt5.Qt import *
import sys
import os
import time
from QT.投屏.tp2 import QpixmapDemo
class TP(QWidget):
# 开始
def TKS(self, rr):
self.rr = rr
# 发送adb连接命令
a = 'adb connect ' + self.rr
# 启动安卓界面
s = 'scrcpy.exe'
os.popen(a, 'r')
time.sleep(1)
os.popen(s, 'r')
# 关闭
def TGB(self):
c = 'adb disconnect 192.168.0.132:5555'
os.popen(c, 'r')
# 当程序关闭时,再次调用 关闭 函数
def closeEvent(self, event):
self.TGB()
if __name__ == '__main__':
a = 'adb connect 192.168.0.132:5555'
os.popen(a, 'r')
app = QApplication(sys.argv)
win = TP()
win.setWindowTitle("安卓桌面")
win.resize(300, 200)
btn = QPushButton(win)
btn.setText("开始")
btn.setStyleSheet("font:40px")
btn.resize(100, 50)
btn.move(50, 50)
btn.clicked.connect(lambda: win.TKS('192.168.0.132:5555'))
btn2 = QPushButton(win)
btn2.setText("关闭")
btn2.setStyleSheet("font:40px")
btn2.resize(100, 50)
btn2.move(150, 50)
btn2.clicked.connect(win.TGB)
ti = QpixmapDemo()
btn3 = QPushButton(win)
btn3.setText("帮助")
btn3.setStyleSheet("font:40px")
btn3.resize(100, 50)
btn3.move(50, 100)
btn3.clicked.connect(ti.show)
win.show()
sys.exit(app.exec_())
这是调用另外一个界面 tp2.py# from PyQt5.QtGui import *
# from PyQt5.QtWidgets import *
from PyQt5.Qt import *
class QpixmapDemo(QWidget):
def __init__(self, parent=None):
super(QpixmapDemo, self).__init__(parent)
self.setWindowTitle('快捷键')
layout = QVBoxLayout()
lab1 = QLabel()
lab1.setPixmap(QPixmap('1.png'))
layout.addWidget(lab1)
self.setLayout(layout)
# if __name__ == '__main__':
# app = QApplication(sys.argv)
# demo = QpixmapDemo()
# demo.show()
# sys.exit(app.exec_())
用pycharm执行是没有问题的,如下:
打包后就提示这个问题:
我把所有文件的路径也截图出来:
是什么问题导致打包后不能正常打开的呀? 我也是百度了好久,说是路径问题,或者是什么编码问题,我都试过了,还是不行。
不需要拼手速,在文件的路径下cmd,和cd到文件的效果一样,然后再输入exe文件运行,就能看到报错信息
但是你代码里不是用了cmd来调用参数么?不使用控制台?
打包exe代码:(文件名不能有空格)
-F:打包后只生成单个exe格式文件,适用于小程序,启动速度较慢;
-D:默认选项,创建一个目录,包含exe文件以及大量依赖文件,启动速度快;
-c:默认选项,使用控制台(就是类似cmd的黑框);
-w:不使用控制台;
-p:添加搜索路径,让其找到对应的库;
-i:改变生成程序的icon图标。
|