Я пробовал обычный pyinstaller, cx_Freeze, cx_Freeze с idna, но он все равно не работает. Когда я запускаю exe-файлы, которые я создал до сих пор, это всегда заканчивается открытием и закрытием командной строки/терминала. Он прекрасно работает в python IDLE, но я не понимаю, почему он не работает как exe-файл. Это код:
import pyautogui
import subprocess
from tkinter import *
import tkinter.messagebox as msgbox
import time
from pynput.keyboard import Key, Controller
from PIL import ImageTk, Image
keyboard = Controller()
root = Tk()
root.geometry("550x500")
root.title("Youtube-dl")
global button_on
button_on = False
global button2_on
button2_on = False
global button3_on
button3_on = False
global link
link = StringVar()
def download():
global link
global button_on
global button2_on
global button3_on
pyautogui.hotkey('winleft', 'd')
time.sleep(0.3)
command = "cmd"
subprocess.Popen(command)
time.sleep(1)
for char in "cd /":
keyboard.press(char)
keyboard.release(char)
time.sleep(0.05)
pyautogui.press('enter')
for char in "cd users":
keyboard.press(char)
keyboard.release(char)
time.sleep(0.05)
pyautogui.press('enter')
for char in "cd admin":
keyboard.press(char)
keyboard.release(char)
time.sleep(0.05)
pyautogui.press('enter')
for char in "cd desktop":
keyboard.press(char)
keyboard.release(char)
time.sleep(0.05)
pyautogui.press('enter')
for char in "cd youtube-dl":
keyboard.press(char)
keyboard.release(char)
time.sleep(0.05)
pyautogui.press('enter')
if (button_on==True) and (button3_on==False):
for char in 'youtube-dl '+str(link.get()):
keyboard.press(char)
keyboard.release(char)
time.sleep(0.05)
elif (button_on==True) and (button3_on==True):
for char in 'youtube-dl -cit '+str(link.get()):
keyboard.press(char)
keyboard.release(char)
time.sleep(0.05)
elif (button2_on==True) and (button3_on==False):
for char in 'youtube-dl --extract-audio --audio-format mp3 '+str(link.get()):
keyboard.press(char)
keyboard.release(char)
time.sleep(0.05)
elif (button2_on==True) and (button3_on==True):
for char in 'youtube-dl -cit --extract-audio --audio-format mp3 '+str(link.get()):
keyboard.press(char)
keyboard.release(char)
time.sleep(0.05)
pyautogui.press('enter')
def switch1():
global button_on
global button2_on
if button_on==True:
button1.config(image=off)
button_on = False
else:
button1.config(image=on)
button2.config(image=off)
button_on = True
button2_on = False
def switch2():
global button_on
global button2_on
if button2_on==True:
button2.config(image=off)
button2_on = False
else:
button1.config(image=off)
button2.config(image=on)
button_on = False
button2_on = True
def switch3():
global button3_on
if button3_on==True:
button3.config(image=off)
button3_on = False
else:
button3.config(image=on)
button3_on = True
onpic = Image.open("images/onbutton.png")
offpic = Image.open("images/offbutton.png")
onresized = onpic.resize((85, 45), Image.ANTIALIAS)
offresized = offpic.resize((85, 45), Image.ANTIALIAS)
on = ImageTk.PhotoImage(onresized)
off = ImageTk.PhotoImage(offresized)
f1 = Frame(root,pady=6)
Label(f1,text="Link",font="comicsans 10").pack()
linkentry = Entry(f1,textvariable=link,width=48,font="comicsans 9",relief=SUNKEN)
linkentry.pack()
f1.pack()
button1 = Button(root, image=off, bd=0, command=switch1)
button1.pack(pady=5)
f2 = Frame(root)
Label(f2,text="Video",font="comicsans 10").pack()
f2.pack()
space = Frame(root,pady=1)
Label(space,text=" ",font="comicsans 10").pack()
space.pack()
button2 = Button(root, image=off, bd=0, command=switch2)
button2.pack(pady=5)
f3 = Frame(root)
Label(f3,text="Audio",font="comicsans 10").pack()
f3.pack()
space = Frame(root,pady=1)
Label(space,text=" ",font="comicsans 10").pack()
space.pack()
button3 = Button(root, image=off, bd=0, command=switch3)
button3.pack(pady=5)
f4 = Frame(root)
Label(f4,text="Playlist",font="comicsans 10").pack()
f4.pack()
space = Frame(root,pady=1.5)
Label(space,text=" ",font="comicsans 10").pack()
space.pack()
f5 = Frame(root)
Button(f5,text="Download",command=download).pack()
f5.pack()
root.mainloop()
? - person TheLizzard   schedule 25.04.2021