2017-06-18 3 views
2

Je l'ai utilisé cx_freeze pour construire un projet python dans un seul dossier avec un .exe et il est des dépendances, mais quand je lance le .exe je reçois l'erreur:AttributeError: objet « module » n'a pas d'attribut « audio_fadein »

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

AttributeError

J'ai lu la documentation pour MoviePy mais ne peut pas savoir pourquoi cela se passe. Mon programme Python fonctionne parfaitement depuis l'IDE (PyCharm) mais après la compilation, je reçois l'erreur MoviePy. J'ai utilisé le recommandé from moviepy.editor import *

Je n'utilise pas réellement le audio_fadein directement dans mon script, donc il doit être appelé par MoviePy quand je montre ma vidéo. Voici le code:

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) 

EDIT: J'ai maintenant essayé de changer la déclaration d'importation from moviepy.editor import VideoFileClip mais avec exactement la même erreur.

+0

Je ne sais pas si cela est pertinent, mais utiliser 'from moviepy.editor import *' n'est pas "recommandé". Il suffit d'importer moviepy.editor et de préfixer toutes les commandes avec celle-ci, ou d'importer uniquement les choses dont vous avez besoin, par exemple 'from moviepy.editor import VideoFileClip'. – tburrows13

+0

@Gloin C'est exactement ce qui est recommandé par le créateur de MoviePy - J'ai lu les docs et ai été à travers le code, où il est également commenté d'être utilisé de cette façon. Mais vous m'avez donné quelque chose d'autre à essayer, ce dont je suis reconnaissant, alors je vais essayer ça ce soir, merci. – JasonPy

+0

Ok, peut-être quand j'ai dit que ce n'était pas recommandé, j'étais un peu fort. [Ici] (http://zulko.github.io/moviepy/getting_started/efficient_moviepy.html#should-i-use-moviepy-editor) dans les docs, il indique "si tout ce dont vous avez besoin est une ou deux fonctionnalités à l'intérieur d'un autre bibliothèque, il est préférable d'importer directement ce dont vous avez besoin ". Je suis d'accord, il est souvent préférable d'effectuer l'importation en masse, mais je pense que pour le code de distribution, l'importation sélective est préférable (il est plus rapide de charger, c'est sûr). – tburrows13

Répondre

3

J'ai eu la même erreur pendant que j'utilisais le programme pyinstaller pour générer le fichier .exe. Cependant, j'ai changé la déclaration d'importation à from moviepy.video.io.VideoFileClip import VideoFileClip et cela a fonctionné.