通过PyInstaller创建的可执行文件崩溃

时间:2020-07-17 12:19:20

标签: python pyinstaller

我创建了一个小应用程序,用于下载youtube视频并将其添加到我的音乐文件夹中,这样我就可以通过Spotify收听它们,只要通过IDE运行该应用程序就可以正常运行。 我通过pyinstaller创建了一个.exe文件,但是该文件在启动时崩溃,我尝试以管理员身份运行该文件,还尝试按照其他线程中的建议通过cmd运行该文件,但是没有任何效果。

我是通过以下方式创建的:

pyinstaller --onefile -c test.py

这是python代码:

from pytube import YouTube
from pytube import Playlist
from moviepy.editor import *
from pathlib import Path
import os

url = input('Enter URL: ')
ytd = YouTube(url)
stream = ytd.streams.first().download(filename= 'video') #stiahne do root filu
mp3_file = ytd.title + '.mp3' #meno pesnicky
#videoClip = VideoFileClip('video.mp4')
audioClip = VideoFileClip('video.mp4').audio
audioClip.write_audiofile(mp3_file) #mp4 na mp3
audioClip.close()
VideoFileClip('video.mp4').close() #v root file je mp3 a mp4
os.remove('video.mp4') #zmaze mp4, ostane mp3
file_path = str(os.path.dirname(os.path.realpath(mp3_file))) + '\\' + mp3_file
music_path = str(os.path.join(Path.home(), "Music")) + '\\' + mp3_file
Path(file_path).rename(music_path)

这是我尝试通过cmd运行它的方法:

Traceback (most recent call last):
  File "C:\Users\rporu\AppData\Local\Programs\Python\Python38-32\Lib\site-packages\PyInstaller\loader\rthooks\pyi_rth_pkgres.py", line 13, in <module>
    import pkg_resources as res
  File "c:\users\rporu\appdata\local\programs\python\python38-32\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 623, in exec_module
    exec(bytecode, module.__dict__)
  File "site-packages\pkg_resources\__init__.py", line 86, in <module>
ModuleNotFoundError: No module named 'pkg_resources.py2_warn'
[3296] Failed to execute script pyi_rth_pkgres

1 个答案:

答案 0 :(得分:1)

在创建exe时使用隐藏的导入

pyinstaller --hidden-import=pkg_resources.py2_warn --onefile -c test.py