2017-06-18 96 views
2

我已經使用cx_freeze將一個python項目構建成一個具有.exe及其相關性的單個文件夾,但是當我運行.exe時出現錯誤:AttributeError:'模塊'對象沒有屬性'audio_fadein'

AttributeError: module 'moviepy.audio.fx.all' has no attribute 'audio_fadein' 

AttributeError

我已經閱讀了MoviePy的文檔,但無法找出爲什麼發生這種情況。我的Python程序可以在IDE(PyCharm)中完美運行,但是在編譯之後,我收到了MoviePy錯誤。我已經使用了推薦的from moviepy.editor import *

我實際上並沒有直接在我的腳本中使用audio_fadein,所以當我顯示視頻時它必須被MoviePy調用。下面是代碼:

def cherrybyte(): 
    pygame.display.set_caption('©2017 CherryByte™ Software') 
    pygame.mouse.set_visible(False) 
    logo = VideoFileClip('CherryByte Logo.mp4') 
    logo.preview() 
    pygame.mouse.set_visible(True) 

編輯:現在我也試圖改變import語句from moviepy.editor import VideoFileClip但具有完全相同的錯誤。

+0

我不知道這是否相關,但使用'from moviepy.editor import *'不是「推薦」。或者只導入moviepy.editor,並用所有命令作爲前綴,或者只導入你需要的東西,例如'from moviepy.editor import VideoFileClip'。 – tburrows13

+0

@Gloin它正是由MoviePy的創建者推薦的 - 我已閱讀文檔,並通過代碼,它也被評論爲以這種方式使用。但你已經給了我其他的東西去嘗試我感激的事情,所以今晚我會嘗試一下,謝謝。 – JasonPy

+0

好的,也許當我說不推薦時,我有點強壯。文檔中的[Here](http://zulko.github.io/moviepy/getting_started/efficient_moviepy.html#should-i-use-moviepy-editor),它指出「如果您需要的是一個或兩個功能庫,最好直接導入你需要的東西「。我同意,經常進行批量導入會更好,但我認爲對於分配代碼而言,選擇性導入是首選(當然,加載速度更快)。 – tburrows13

回答

3

我在使用pyinstaller構建.exe文件時發生了同樣的錯誤。 但是,我將導入聲明更改爲from moviepy.video.io.VideoFileClip import VideoFileClip 並且它工作正常。

相關問題