鱼C论坛

 找回密码
 立即注册
查看: 1845|回复: 4

[已解决]Failed to execute script找不到解决方法

[复制链接]
发表于 2021-1-15 00:14:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
这次写的程序用到了第三方库,再次遇到了打包不了exe的问题
打包成exe,运行提示Failed to execute script
用pycharm也不行,会出现以下提示
D:\Program Files\etBrains\PyCharm 2020.1\br\bin\PycharmProjects\untitled1\dist\scratch.exe
Traceback (most recent call last):
File "scratch.py", line 2, in <module>
File "PyInstaller \loader pyimod03_importers.py", line 531, in exec_module
File "pynput\__init__.py", line 40,in <module>
File "PyInstaller\loader \pyimod03 ,importers. py"'line 531, in exec_module
File "pynput\keyboard\___init__.py", line 31,in <module>
File "pynput\_util\_init_.py", line 76, in backend
ImportError
[10272] Failed to execute script scratch
小白表示不懂什么意思啊
是想自己试试弄个连点器,在python里运行是没有任何问题的,就是不知道为啥打不了包
  1. import win32api
  2. import win32con
  3. import pynput
  4. import ctypes
  5. import time
  6. from tkinter import *
  7. from tkinter.ttk import *
  8. import threading
  9. import os

  10. VK_CODE={
  11.     'backspace':0x08,
  12.     'tab':0x09,
  13.     'clear':0x0C,
  14.     'enter':0x0D,
  15.     'shift':0x10,
  16.     'ctrl':0x11,
  17.     'alt':0x12,
  18.     'pause':0x13,
  19.     'caps_lock':0x14,
  20.     'esc':0x1B,
  21.     'spacebar':0x20,
  22.     'page_up':0x21,
  23.     'page_down':0x22,
  24.     'end':0x23,
  25.     'home':0x24,
  26.     'left_arrow':0x25,
  27.     'up_arrow':0x26,
  28.     'right_arrow':0x27,
  29.     'down_arrow':0x28,
  30.     'select':0x29,
  31.     'print':0x2A,
  32.     'execute':0x2B,
  33.     'print_screen':0x2C,
  34.     'ins':0x2D,
  35.     'del':0x2E,
  36.     'help':0x2F,
  37.     '0':0x30,
  38.     '1':0x31,
  39.     '2':0x32,
  40.     '3':0x33,
  41.     '4':0x34,
  42.     '5':0x35,
  43.     '6':0x36,
  44.     '7':0x37,
  45.     '8':0x38,
  46.     '9':0x39,
  47.     'a':0x41,
  48.     'b':0x42,
  49.     'c':0x43,
  50.     'd':0x44,
  51.     'e':0x45,
  52.     'f':0x46,
  53.     'g':0x47,
  54.     'h':0x48,
  55.     'i':0x49,
  56.     'j':0x4A,
  57.     'k':0x4B,
  58.     'l':0x4C,
  59.     'm':0x4D,
  60.     'n':0x4E,
  61.     'o':0x4F,
  62.     'p':0x50,
  63.     'q':0x51,
  64.     'r':0x52,
  65.     's':0x53,
  66.     't':0x54,
  67.     'u':0x55,
  68.     'v':0x56,
  69.     'w':0x57,
  70.     'x':0x58,
  71.     'y':0x59,
  72.     'z':0x5A,
  73.     'numpad_0':0x60,
  74.     'numpad_1':0x61,
  75.     'numpad_2':0x62,
  76.     'numpad_3':0x63,
  77.     'numpad_4':0x64,
  78.     'numpad_5':0x65,
  79.     'numpad_6':0x66,
  80.     'numpad_7':0x67,
  81.     'numpad_8':0x68,
  82.     'numpad_9':0x69,
  83.     'multiply_key':0x6A,
  84.     'add_key':0x6B,
  85.     'separator_key':0x6C,
  86.     'subtract_key':0x6D,
  87.     'decimal_key':0x6E,
  88.     'pide_key':0x6F,
  89.     'F1':0x70,
  90.     'F2':0x71,
  91.     'F3':0x72,
  92.     'F4':0x73,
  93.     'F5':0x74,
  94.     'F6':0x75,
  95.     'F7':0x76,
  96.     'F8':0x77,
  97.     'F9':0x78,
  98.     'F10':0x79,
  99.     'F11':0x7A,
  100.     'F12':0x7B,
  101.     'F13':0x7C,
  102.     'F14':0x7D,
  103.     'F15':0x7E,
  104.     'F16':0x7F,
  105.     'F17':0x80,
  106.     'F18':0x81,
  107.     'F19':0x82,
  108.     'F20':0x83,
  109.     'F21':0x84,
  110.     'F22':0x85,
  111.     'F23':0x86,
  112.     'F24':0x87,
  113.     'num_lock':0x90,
  114.     'scroll_lock':0x91,
  115.     'left_shift':0xA0,
  116.     'right_shift ':0xA1,
  117.     'left_control':0xA2,
  118.     'right_control':0xA3,
  119.     'left_menu':0xA4,
  120.     'right_menu':0xA5,
  121.     'browser_back':0xA6,
  122.     'browser_forward':0xA7,
  123.     'browser_refresh':0xA8,
  124.     'browser_stop':0xA9,
  125.     'browser_search':0xAA,
  126.     'browser_favorites':0xAB,
  127.     'browser_start_and_home':0xAC,
  128.     'volume_mute':0xAD,
  129.     'volume_Down':0xAE,
  130.     'volume_up':0xAF,
  131.     'next_track':0xB0,
  132.     'previous_track':0xB1,
  133.     'stop_media':0xB2,
  134.     'play/pause_media':0xB3,
  135.     'start_mail':0xB4,
  136.     'select_media':0xB5,
  137.     'start_application_1':0xB6,
  138.     'start_application_2':0xB7,
  139.     'attn_key':0xF6,
  140.     'crsel_key':0xF7,
  141.     'exsel_key':0xF8,
  142.     'play_key':0xFA,
  143.     'zoom_key':0xFB,
  144.     'clear_key':0xFE,
  145.     '+':0xBB,
  146.     ',':0xBC,
  147.     '-':0xBD,
  148.     '.':0xBE,
  149.     '/':0xBF,
  150.     '`':0xC0,
  151.     ';':0xBA,
  152.     '[':0xDB,
  153.     '//':0xDC,
  154.     ']':0xDD,
  155.     "'":0xDE,
  156.     '`':0xC0}
  157. sig=0
  158. mouse=pynput.mouse.Controller()
  159. keyboard=pynput.keyboard.Controller()
  160. t=0
  161. lock=0
  162. def keyboardclick(virnum):
  163.     Time=timeset.get()
  164.     Time=float(Time)
  165.     MapVirtualKey=ctypes.windll.user32.MapVirtualKeyA
  166.     win32api.keybd_event(virnum,MapVirtualKey(virnum,0),0,0)
  167.     time.sleep(0.001)
  168.     win32api.keybd_event(virnum,MapVirtualKey(virnum,0),win32con.KEYEVENTF_KEYUP,0)
  169.     time.sleep(Time)
  170. def click():
  171.     Time=timeset.get()
  172.     Time=float(Time)
  173.     MCB.config(state=DISABLED)
  174.     KCB.config(state=DISABLED)
  175.     MRB.config(state=DISABLED)
  176.     KRB.config(state=DISABLED)
  177.     keyword=KCB.get()
  178.     global lock
  179.     lock=1
  180.     while sig==1 and Time!=0 and v.get()==0 and MCB.get()=='左键':
  181.         win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
  182.         time.sleep(0.001)
  183.         win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
  184.         time.sleep(Time)
  185.         count()
  186.     while sig==1 and Time!=0 and v.get()==0 and MCB.get()=='右键':
  187.         win32api.mouse_event(win32con.MOUSEEVENTF_RIGHTDOWN,0,0,0,0)
  188.         time.sleep(0.001)
  189.         win32api.mouse_event(win32con.MOUSEEVENTF_RIGHTUP,0,0,0,0)
  190.         time.sleep(Time)
  191.         count()
  192.     while sig==1 and Time!=0 and v.get()==1:
  193.         try:
  194.             keyboardclick(VK_CODE[KCB.get()])
  195.             count()
  196.         except:
  197.             break
  198.     if v.get()==0:
  199.         MCB.config(state='readonly')   
  200.     else:
  201.         KCB.config(state=NORMAL)
  202.     lock=0
  203.     MRB.config(state=NORMAL)
  204.     KRB.config(state=NORMAL)
  205. ##    global t
  206. ##    t=0
  207. ##    numLabel.config(text=str(t))
  208. def startclick():
  209.     global sig
  210.     global lock
  211.     if sig==0 and lock==0:
  212.         sig=1
  213.         thread=threading.Thread(target=click)
  214.         thread.setDaemon(True)
  215.         thread.start()
  216.         timeset.config(state=DISABLED)
  217.     else:
  218.         sig=0
  219.         timeset.config(state=NORMAL)
  220. def count():
  221.     global t
  222.     t+=1
  223.     numLabel.config(text=str(t))
  224. def startlisten():
  225.     with pynput.keyboard.GlobalHotKeys({
  226.     '<f8>':startclick}) as hot:
  227.         hot.join()
  228. def choice():
  229.     c=v.get()
  230.     if c==0:
  231.         KCB.config(state=DISABLED)
  232.         MCB.config(state='readonly')
  233.     elif c==1:
  234.         MCB.config(state=DISABLED)
  235.         KCB.config(state=NORMAL)
  236. def resourcepath(relativepath):
  237.     if hasattr(sys, '_MEIPASS'):
  238.         basepath=sys._MEIPASS
  239.     else:
  240.         basepath=os.path.abspath('.')
  241.     return os.path.join(basepath,relativepath)

  242. ico186ico=resourcepath('img\\ico186.ico')

  243. l=threading.Thread(target=startlisten)
  244. l.setDaemon(True)
  245. l.start()
  246. win=Tk()
  247. win.title('连点器V2.1')
  248. win.geometry('300x140')
  249. win.resizable(0,0)
  250. win.iconbitmap(ico186ico)
  251. numbutton=Label(win,text='下方为计数测试区\n请按<F8>开始连点',relief='solid')
  252. numbutton.place(x=20,y=10,anchor=NW)
  253. numLabel=Label(win,text=str(t))
  254. numLabel.place(x=72,y=50,anchor=N)
  255. timeLabel=Label(win,text='时间间隔:',font=('微软雅黑','12'))
  256. timeLabel.place(x=246,y=5,anchor=NE)
  257. timeset=Combobox(win,width=12)
  258. timeset.place(x=270,y=30,anchor=NE)
  259. timeset['value']=(1,0.5,0.2,0.1,0.05,0.02,0.01,0.001)
  260. timeset.current(3)
  261. v=IntVar()
  262. v.set(0)
  263. MRB=Radiobutton(win,text='鼠标',variable=v,value=0,command=choice)
  264. MRB.place(x=20,y=90,anchor=SW)
  265. MCB=Combobox(win,width=12)
  266. MCB.place(x=20,y=110,anchor=SW)
  267. MCB['value']=('左键','右键')
  268. MCB.current(0)
  269. MCB.config(state='readonly')
  270. KRB=Radiobutton(win,text='键盘(可自定义)',variable=v,value=1,command=choice)
  271. KRB.place(x=162,y=90,anchor=SW)
  272. KCB=Combobox(win,width=12)
  273. KCB.place(x=270,y=110,anchor=SE)
  274. KCB['value']=('a','b','c','F3','F5','enter','up_arrow')
  275. KCB.current(0)
  276. KCB.config(state=DISABLED)
  277. COPYRIGHT=Label(win,text='Copyright &#169; 2020 Jerry·林 E-mail:1282387390@qq.com',font=('微软雅黑',8))
  278. COPYRIGHT.pack(side=BOTTOM)
  279. win.mainloop()
复制代码
最佳答案
2021-1-15 07:23:25
把pynput卸载,安装1.6.8版本:pip install pynput==1.6.8
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-1-15 00:15:15 | 显示全部楼层
运行的话,需要把我那几行引用图标文件的代码删掉
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-15 07:23:25 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
把pynput卸载,安装1.6.8版本:pip install pynput==1.6.8
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-15 12:43:48 | 显示全部楼层
hrp 发表于 2021-1-15 07:23
把pynput卸载,安装1.6.8版本:pip install pynput==1.6.8

nice兄弟,谢谢啦,我想知道这又是什么原因呢?之前我一个贴打包不行是因为用了python3.9,改了3.8就好了,这个也是新版本问题吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-15 12:56:39 From FishC Mobile | 显示全部楼层
Jerry_Green 发表于 2021-1-15 12:43
nice兄弟,谢谢啦,我想知道这又是什么原因呢?之前我一个贴打包不行是因为用了python3.9,改了3.8就好了 ...

这个是因为pynput这个库1.6.8以上版本打包后不能正常运行,应该跟py版本没关系
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-2 07:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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