当前位置: 首页 > 知识库问答 >
问题:

通过PyInstaller崩溃创建的可执行程序

陈霄
2023-03-14

我创建了一个小应用程序来下载youtube视频,并将它们添加到我的音乐文件夹中,这样我就可以通过spotify收听它们。只要我通过IDE运行该应用程序,它就可以正常工作。我创建了一个。exe文件通过pyinstaller,但它在启动时崩溃,我尝试以管理员身份运行它,也尝试按照其他线程中的建议通过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个答案

刁跃
2023-03-14

创建exe时,请使用隐藏导入

pyinstaller --hidden-import=pkg_resources.py2_warn --onefile -c test.py
 类似资料:
  • 我想使用pyInstaller的单文件夹模式,但我不想每次都收集所有依赖项。 大多数情况下,我可以重用它以前打包的所有依赖项,我只需要可执行文件,我想如果我能在构建过程中尽快停止,我会在构建过程中节省10~20分钟。exe文件已生成。 我知道用-F标志将所有依赖项打包到一个可执行文件中,但这不是我想要的。我只希望pyInstaller在打包步骤之前停止。 我希望生成在可能输出时立即停止:

  • 问题内容: 我在Windows 10上,安装了anaconda,但我想使用python 3.5在新的,干净的最小环境中独立创建可执行文件。所以我做了一些测试: TEST1:我在文件夹testenv中仅创建了一个python脚本test1.py: 然后创建环境,安装pyinstaller并创建可执行文件 它创建了大约6 Mb的我的test1.exe 测试2:我将test1.py修改如下: 我在环境中

  • 问题内容: 我已经在JCreator中编写了Java程序,一切都已完成,但是我想从中创建一个可执行文件,即,我不想通过加载Java类并编译然后执行来运行程序,而是将其作为独立的可执行文件。 最快的方法是什么? 问题答案: 你可以使用SDK附带的jar工具,并创建该程序的可执行版本。 这就是完成的方式。 我将从命令提示符中发布结果,因为它更容易,但是使用JCreator时也应如此。 首先创建你的程序

  • 问题内容: 我需要在通过JPA EntityManager访问的数据库中创建一个新表。JPA NativeQueries是否支持“选择”或“更新”以外的查询?还是在JPA上下文中还有另一种先进的方法来执行复杂的SQL查询? 问题答案: jpa“本机查询”仅可用于DML语句(数据处理语言)。要发布任何DDL(例如创建表),您需要从EntityManager获取基础连接。 如何从EM中提取连接将取决于

  • 本文向大家介绍使用Pyinstaller转换.py文件为.exe可执行程序过程详解,包括了使用Pyinstaller转换.py文件为.exe可执行程序过程详解的使用技巧和注意事项,需要的朋友参考一下  前言 pyinstaller能够在Windows、Linux等操作系统下将Python脚本打包成可直接运行程序。使Python脚本可以在没有安装Python的环境中直接运行,方便共享。 开发环境 p

  • 问题内容: 为了创建可执行文件(Windows),我假设我们应该使用其中之一:Py2exe或PyInstaller。 它们之间有什么区别? 问题答案: Py2exe和PyInstaller都是包装器,但是我注意到了一些区别, Py2exe与python2.4 +兼容,包括python3.0和3.1,而PyInstaller当前与python 2.7和3.3–3.5兼容 据我所知,Py2exe不支持