python打包成exe闪退_脚本程序打包后,黑框一闪而过,程序不能运行
源程序的链接是我另一个求助帖:https://fishc.com.cn/forum.php?m ... p;page=1#pid4988050
源程序已经完美解决,能够在pycharm实现了,再次感谢大佬@疾风怪盗
但是目前打包却出现了错误,就连 打包前脱离pycharm,双击.py文件先运行下程序都不行,也是出现黑框,ImportError
今天百度了下,大概可能是:
1. 不能用 from xx import xx 这种导入方式
2. Process 多进程打包还涉及一个什么GIL锁
总之还没搞懂
打包代码(我对代码做了点小小的改动):
from pynput.keyboard import Listener
import time
from tkinter import *
import os
from multiprocessing import Process
import psutil
# 设置进程1,实现目标:按键监听,当按下“d”键时,进程2能挂起(暂停运行),并弹窗提示"继续程序"和"终止程序"按钮。
# 当按下"继续程序"按钮时,进程2能接下去运行,当按下"终止程序"时,进程2能结束运行。
def work1(pid, mainpid):
# 按键监听,当按下“d"键时弹窗
def on_press(key):
all_key = []
all_key.append(str(key))
if "'d'" in all_key:
pause = psutil.Process(pid) # 传入子进程的pid
pause.suspend() # 暂停子进程
#print(f'{pid}子进程已暂停。。。。')
def on_release(key):
all_key = []
all_key.append(str(key))
if "'d'" in all_key:
def zzcx():
pipause = psutil.Process(mainpid) # 传入主进程的pid
pipause.kill()
#print(f'{mainpid}主进程已结束。。。。')
tanchuan_zt.destroy()
os._exit(0)
def jxcx():
pause = psutil.Process(pid) # 传入子进程的pid
pause.resume() # 暂停子进程
#print(f'{pid}子进程已继续。。。。')
tanchuan_zt.destroy()
# 设置弹窗
tanchuan_zt = Tk()
tanchuan_zt.wm_attributes('-topmost', 1) # 弹窗置顶
tanchuan_zt.title("终止/暂停程序")
wb_zt = Label(tanchuan_zt, text="您按下了”D(d)“键,此为暂停程序键,\n请问是否继续", compound=CENTER,
font=("楷体", 20), fg="black")
wb_zt.pack(pady=20)
xx1_button = Button(tanchuan_zt, text="终止程序", command=zzcx)
xx1_button.pack(side="left", padx=120)
xx2_button = Button(tanchuan_zt, text="继续程序", command=jxcx)
xx2_button.pack(side="right", padx=120)
# 弹窗位置大小设置
width = 700
height = 200
screenwidth = tanchuan_zt.winfo_screenwidth()
screenheight = tanchuan_zt.winfo_screenheight()
alignstr = '%dx%d+%d+%d' % (width, height, (screenwidth - width) / 2, (screenheight - height) / 2)
tanchuan_zt.geometry(alignstr)
tanchuan_zt.mainloop()
all_key.clear() # 对列表进行清空
# if key == Key.esc: # 停止监听
# return Falseurn False
def start_listen(): # 设置监听
with Listener(on_press=on_press, on_release=on_release) as listener:
listener.join()
start_listen() # 启动监听
# 设置进程2,一个普通的打印数字程序
def work2(mainpid):
for i in range(1, 10):
print(i)
time.sleep(1)
pipause2 = psutil.Process(mainpid) # 传入主进程的pid
pipause2.kill()
os._exit(0)
if __name__ == '__main__':
mainpid = os.getpid() # 获取主进程pid
p2 = Process(target=work2,args=(mainpid,))
p2.start()
pid = p2.pid # 获取子进程pid
p1 = Process(target=work1, args=(pid, mainpid))
p1.start()
python打包成exe闪退_脚本程序打包后,黑框一闪而过,程序不能运行相关推荐
- python3打包成exe怎么给别人用_pyinstaller 打包python文件成.exe程序
使用pycharm写好的代码,每次都要使用pycharm来执行比较麻烦,打包成.exe程序后可以直接运行,还可以发到别的电脑上执行,比较方便. 1.打开cmd命令提示符窗口,cd到pip.exe所在的 ...
- python打包成exe导入文件_【转载】将python脚本打包成exe文件
标签: exe文件也就是可以直接执行的文件.通常我们编好的带py后缀的脚本文件都是需要在有python的环境下执行, 每次通过Win + R打开运行窗口再输入powershell打开控制台,再千辛万苦 ...
- python打包成exe fail to ex_寻求帮助:pyinstaller打包.exe
@[寻求帮助!] 使用pyinstaller打包出现以下错误内容 62 INFO: PyInstaller: 3.5 62 INFO: Python: 3.8.0a3 62 INFO: Platfor ...
- python 编译成exe vmp加密_简单分析VMProtect V3.3.1
本帖最后由 Crazyman_Army 于 2019-2-15 15:05 编辑 前言 VMProtect3很早就出来了,据说代码使用C++重构了,而且虚拟机架构也有很大的变化.网上关于VMP3.X的 ...
- 怎么解决java.exe闪退_解决Eclipse闪退问题的方法总结
1.在C:/WINDOWS/system32 系统文件夹中ctrl+F 然后搜索java.exe,如果存在java.exe, javaw.exe etc.全部删除. 2.内存不足,打开Eclipse目 ...
- 史上最详细版!java文件打包成exe,在未配置安装JDK和未配置的电脑上运行--转载...
原文地址:http://funine.iteye.com/blog/2220359 (本文所有素材将在文章最后附上) 准备工具exe4j, converticon.com(用于制做.ico格式的图片) ...
- Python打包成exe文件_详细操作
Python打包成exe文件 前言 一.安装pyinstaller 1.1 安装pyinstaller,使用安装命令: 1.2 如果遇到需要更新版本请输入: 1.3 检查是否正确安装 1.4 稍等,水 ...
- python打包成exe导入文件_Pyinstaller(python打包为exe文件)
需求分析: python脚本如果在没有安装python的机器上不能运行,所以将脚本打包成exe文件,降低脚本对环境的依赖性,同时运行更加迅速. 当然打包的脚本似乎不是在所有的win平台下都能使用,wi ...
- python+unity表情驱动二(打包成exe)
python+unity表情驱动工具二(打包成exe) 使用pyinstaller在控制台打包 工具的使用效果 使用pyinstaller在控制台打包 这里并没有使用auto-py-to-exe界面工 ...
最新文章
- 基于单片机的水壶自动加热系统_基于烟雾检测火灾自动报警系统
- Linuxnbsp;JDK1.4卸载与1.6的安装
- Python对字符串进行左右中对齐
- python并发处理list数据_python并发编程之多进程2--------数据共享及进程池和回调函数...
- 二阶振荡环节的谐振频率_【干货分享】晶体谐振器振荡频差的原因及对策
- 蓝桥杯练习(java):字符串对比
- C++编程技巧—对数运算实现
- Linux 串口编程四 串口设备程序开发
- hdu2795 Billboard 线段树
- Activity之间的数据传递—实现Parcelable接口
- WPF自定义Main函数
- 【MATLAB】(一)基本使用入门
- osgEarth gpx文件 16.feature_gpx.earth
- QT实现串口调试助手(一)
- mac ios自动化 appium-doctor 安装opencv4nodejs爬坑记录
- python实现指纹识别毕业论文_指纹识别技术毕业论文-指纹识别密码锁毕业论文...
- No5.String类的常用方法
- 这些有趣的Python库一定会亮到你
- 飞腾服务器如何查看cpu型号,飞腾cpu怎么样 飞腾cpu简介及对比评测【详解】
- 分支和循环语句---循环语句