Сложность открытия EXE-файла

#python #tkinter #pyinstaller #executable

#python #tkinter #pyinstaller #исполняемый файл

Вопрос:

Я написал конвертер YouTube, который работает нормально, когда я запускаю его из pycharm. Я попробовал несколько способов использования pyinstaller для создания exe-файла из файла .py ниже.

С компакт-диска в нужном каталоге,

когда я пытаюсь pyinstaller --onefile -w filename.py или pyinstaller --onefile filename.py , когда я пытаюсь открыть исполняемый файл, я получаю фатальную ошибку не удалось запустить скрипт.

когда я пытаюсь pyinstaller filename.py или python -m PyInstaller filename.py , а затем пытаюсь открыть исполняемый файл, cmd мигает, а затем ничего.

Из pycharm, когда я запускаю программу, открывается tkinter, и все функции работают нормально.

Вот мой код

 from tkinter import *
from pytube import YouTube
import youtube_dl

window = Tk()
window.title("Convertiseur Youtube 1.0")
window.configure(background="silver")
window.geometry("600x250")

def clickvideo():
   url = textentry.get()
   YouTube(url).streams.filter(file_extension='mp4').first().download()
   textentry.delete(0, END)
   status.set("Succès! Le fichier mp4 a été envoyé à l'endroit à partir du quel ce programme est exécuté.")


def clickaudio():
   video_info = youtube_dl.YoutubeDL().extract_info(
      url=textentry.get(), download=False
   )
   filename = f"{video_info['title']}.mp3"
   options = {
      'format': 'bestaudio/best',
      'keepvideo': False,
      'outtmpl': filename,
      'postprocessors': [{
         'key': 'FFmpegExtractAudio',
         'preferredcodec': 'mp3',
         'preferredquality': '192',
      }]
   }
   with youtube_dl.YoutubeDL(options) as ydl:
      ydl.download([video_info['webpage_url']])
   textentry.delete(0, END)
   status.set("Succès! Le fichier mp3 a été envoyé à l'endroit à partir du quel ce programme est exécuté.")


Label(window, background="silver").pack()

Label(window, text="Lien Youtube à convertir:", background="silver").pack()

Label(window, background="silver").pack()

textentry = Entry(window, width=60)
textentry.get()
textentry.pack()

Label(window, background="silver").pack()

videobutton = Button(window, text="Convertir en vidéo", width=16, command=clickvideo).pack()

Label(window, background="silver").pack()

audiobutton = Button(window, text="Convertir en audio", width=16, command=clickaudio).pack()

Label(window, background="silver").pack()

status = StringVar()
status.set("Si rien ne se passe, il y a un problème avec le lien (typo ou mauvais lien).")

status_label = Label(window, background="silver", textvariable=status)
status_label.pack()

window.mainloop()
  

Спасибо

Комментарии:

1. Привет, на консоли появится сообщение об ошибке, которое будет мигать, попробуйте записать его и включить код ошибки здесь

2. На самом деле, похоже, ошибки нет, она просто мигает, затем исчезает, никаких дополнительных сообщений.

3. Запустите exe-файл из командной строки, затем посмотрите, что он показывает

4. Спасибо, Барри! C:UsersUserPycharmProjectsyoutubeconverterdistguizmoytc >guizmoytc.exe Трассировка (последний последний вызов): Файл «guizmoytc.py «, строка 2, в <module> ModuleNotFoundError: Ни одному модулю с именем ‘pytube’ [6576] не удалось выполнить скрипт guizmoytc

Ответ №1:

Проблема в том, что pytube был установлен в вашей виртуальной среде, заданной pycharm, а не в глобальной версии python, поэтому скажите это в терминале:

 pip install pytube 
  

* На самом деле pytube3

Затем запустите строку кода pyinstaller в терминале, из которого вы установили библиотеку, и она должна исправить ошибку.

Комментарии:

1. Да, действительно, я установил эти модули на pycharm venv, а не на свой компьютер (не на python?) Хорошо, я установил pytube и youtube-dl в том же месте, где находится мой python. установка прошла успешно. Я повторно запускаю pyinstaller из своих файлов pycharm. Я получил exe-файл. Я попытался открыть его из команды, теперь я получаю это: C:UsersUserPycharmProjectsyoutubeconverterdist >guizmoytc.exe C:UsersUserPycharmProjectsyoutubeconverterdist > И через 5 секунд: «неустранимая ошибка при выполнении скрипта guizmoytc»

2. Правильно ли я устанавливаю модули в нужном месте? Должен ли я устанавливать, где находится мой python или wherepycharm?

3. Хорошо, простите, на самом деле я использовал другой метод, это ошибка, которую я получаю сейчас, когда я использовал тот же метод, что и ранее:

4. Traceback (most recent call last): File "guizmoytc.py", line 2, in <module> File "c:usersuserappdatalocalprogramspythonpython38-32libsite-packagesPyInstallerloaderpyimod03_importers.py", line 493, in exec_module exec(bytecode, module.__dict__) File "pytube__init__.py", line 16, in <module> File "c:usersuserappdatalocalprogramspythonpython38-32libsite-packagesPyInstallerloaderpyimod03_importers.py", line 493, in exec_module exec(bytecode, module.__dict__)

5. File "pytubestreams.py", line 17, in <module> File "c:usersuserappdatalocalprogramspythonpython38-32libsite-packagesPyInstallerloaderpyimod03_importers.py", line 493, in exec_module exec(bytecode, module.__dict__) File "pytubeextract.py", line 7, in <module> ImportError: cannot import name 'quote' from 'pytube.compat' (C:UsersUserPycharmProjectsyoutubeconverterdistguizmoytcpytubecompat.pyc) [9596] Failed to execute script guizmoytc