exe打开困难

Difficulty opening an exe

我写了一个 youtube 转换器,当我从 pycharm 中 运行 时它工作正常。我尝试了几种方法来使用 pyinstaller 从下面的 .py 文件中创建一个 exe 文件。

从 cd 中,在正确的目录中,

当我尝试 pyinstaller --onefile -w filename.pypyinstaller --onefile filename.py 时,当我尝试打开可执行文件时,出现致命错误 could not 运行 script.

当我尝试 pyinstaller filename.pypython -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()

谢谢

问题是 pytube 安装在 pycharm 给定的虚拟环境中,而不是全局 python 版本,所以在终端中这样说:

pip install pytube 

*其实是pytube3

然后 运行 在您安装库的终端中的 pyinstaller 代码行,它应该可以修复错误。