繁体   English   中英

使用 pyinstaller 转换为 exe 时出现 Moviepy 模块错误

[英]Moviepy module error when converting to exe with pyinstaller

使用 pyinstaller py 文件打包后出现以下错误:

Traceback (most recent call last):
 File "gui.py", line 10, in <module>
 File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
 File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
 File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
 File "PyInstaller\loader\pyimod03_importers.py", line540, in exec_module
 File "moviepy\editor.py", line 87, in <module>
 File "<string>", line 1, in <module>
AttributeError: module 'moviepy.audio.fx.all' has no attribute 'audio_fadein'
[8028] Failed to execute script gui

我没有在我的代码中使用任何称为音频的东西,只有一个将 mp4 转换为 mp3 的代码。

这是代码:

mp4_file = os.path.abspath(os.getcwd()) + "\\Files\\Mp3\\Mp3_Temp_File\\Temp_video.mp4"
mp3_file = os.path.abspath(os.getcwd()) + "\\Files\\Mp3\\" + str(yt.title) + ".mp3"
videoclip = VideoFileClip(mp4_file)
audioclip = videoclip.audio
audioclip.write_audiofile(mp3_file)
audioclip.close()
videoclip.close() 

我该如何解决这个错误? 我尝试使用不同的 pyinstaller 代码但一无所获

我有完全相同的代码和相同的错误。

这是我的解决方案:

  1. 您使用 pyinstaller 将其转换为 exe pyinstaller myfile.py (我知道 exe 不起作用)。
  2. 如果生成 exe,pyinstaller 添加一个与 python 脚本同名的 .spec 文件(例如:“myfile.spec”)。
  3. 您必须编辑 .spec 文件(您可以使用 Notepad++ 执行此操作)并像我一样添加行a.datas += Tree("moviepypath", prefix='moviepy')
# -*- mode: python ; coding: utf-8 -*-


block_cipher = None


a = Analysis(
...)

a.datas += Tree("moviepypath", prefix='moviepy')
...

您必须在其中放置电影路径而不是“moviepypath”(不要忘记路径开头和结尾的“”)。 如果您不知道 moviepy 的路径,请按 windows + r 并输入 window %appdata% ,向下滚动到文件夹“Python”,go 到“site-packages”并复制 moviepy 的路径。 现在它应该工作了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM