源程序的链接是我另一个求助帖: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闪退_脚本程序打包后,黑框一闪而过,程序不能运行相关推荐

  1. python3打包成exe怎么给别人用_pyinstaller 打包python文件成.exe程序

    使用pycharm写好的代码,每次都要使用pycharm来执行比较麻烦,打包成.exe程序后可以直接运行,还可以发到别的电脑上执行,比较方便. 1.打开cmd命令提示符窗口,cd到pip.exe所在的 ...

  2. python打包成exe导入文件_【转载】将python脚本打包成exe文件

    标签: exe文件也就是可以直接执行的文件.通常我们编好的带py后缀的脚本文件都是需要在有python的环境下执行, 每次通过Win + R打开运行窗口再输入powershell打开控制台,再千辛万苦 ...

  3. python打包成exe fail to ex_寻求帮助:pyinstaller打包.exe

    @[寻求帮助!] 使用pyinstaller打包出现以下错误内容 62 INFO: PyInstaller: 3.5 62 INFO: Python: 3.8.0a3 62 INFO: Platfor ...

  4. python 编译成exe vmp加密_简单分析VMProtect V3.3.1

    本帖最后由 Crazyman_Army 于 2019-2-15 15:05 编辑 前言 VMProtect3很早就出来了,据说代码使用C++重构了,而且虚拟机架构也有很大的变化.网上关于VMP3.X的 ...

  5. 怎么解决java.exe闪退_解决Eclipse闪退问题的方法总结

    1.在C:/WINDOWS/system32 系统文件夹中ctrl+F 然后搜索java.exe,如果存在java.exe, javaw.exe etc.全部删除. 2.内存不足,打开Eclipse目 ...

  6. 史上最详细版!java文件打包成exe,在未配置安装JDK和未配置的电脑上运行--转载...

    原文地址:http://funine.iteye.com/blog/2220359 (本文所有素材将在文章最后附上) 准备工具exe4j, converticon.com(用于制做.ico格式的图片) ...

  7. Python打包成exe文件_详细操作

    Python打包成exe文件 前言 一.安装pyinstaller 1.1 安装pyinstaller,使用安装命令: 1.2 如果遇到需要更新版本请输入: 1.3 检查是否正确安装 1.4 稍等,水 ...

  8. python打包成exe导入文件_Pyinstaller(python打包为exe文件)

    需求分析: python脚本如果在没有安装python的机器上不能运行,所以将脚本打包成exe文件,降低脚本对环境的依赖性,同时运行更加迅速. 当然打包的脚本似乎不是在所有的win平台下都能使用,wi ...

  9. python+unity表情驱动二(打包成exe)

    python+unity表情驱动工具二(打包成exe) 使用pyinstaller在控制台打包 工具的使用效果 使用pyinstaller在控制台打包 这里并没有使用auto-py-to-exe界面工 ...

最新文章

  1. 基于单片机的水壶自动加热系统_基于烟雾检测火灾自动报警系统
  2. Linuxnbsp;JDK1.4卸载与1.6的安装
  3. Python对字符串进行左右中对齐
  4. python并发处理list数据_python并发编程之多进程2--------数据共享及进程池和回调函数...
  5. 二阶振荡环节的谐振频率_【干货分享】晶体谐振器振荡频差的原因及对策
  6. 蓝桥杯练习(java):字符串对比
  7. C++编程技巧—对数运算实现
  8. Linux 串口编程四 串口设备程序开发
  9. hdu2795 Billboard 线段树
  10. Activity之间的数据传递—实现Parcelable接口
  11. WPF自定义Main函数
  12. 【MATLAB】(一)基本使用入门
  13. osgEarth gpx文件 16.feature_gpx.earth
  14. QT实现串口调试助手(一)
  15. mac ios自动化 appium-doctor 安装opencv4nodejs爬坑记录
  16. python实现指纹识别毕业论文_指纹识别技术毕业论文-指纹识别密码锁毕业论文...
  17. No5.String类的常用方法
  18. 这些有趣的Python库一定会亮到你
  19. 飞腾服务器如何查看cpu型号,飞腾cpu怎么样 飞腾cpu简介及对比评测【详解】
  20. 分支和循环语句---循环语句

热门文章

  1. CashTippr:比特币现金MoneyButton打赏插件
  2. 前端:jQuery对象和dom对象的转换
  3. CentOS6.5下做DNS服务器
  4. NexentaVSA 查看
  5. 4.12 《硬啃设计模式》 第29章 行为型设计模式小结
  6. Linux(Ubuntu)下如何解压 .zip 文件
  7. [转]《JAVA与模式》之责任链模式
  8. 十年中文技术社区风雨之路 今晚4位老炮畅聊过去未来
  9. element-ui upload组件上传图片时限制图片宽高
  10. Java多个jdk安装切换