web-dev-qa-db-fra.com

Impossible d'importer moviepy.editor

j'essayais de créer une application avec Python en utilisant la bibliothèque Moviepy. Je l'ai installé en utilisant: 

pip install moviepy

J'ai trouvé ceci d'un cours intensif de MoviePy:

# Import everything needed to edit video clips
from moviepy.editor import *

Après avoir essayé de lancer cette ligne, j'obtiens cette erreur:

Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:42:59) [MSC v.1500 32     bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> # Import everything needed to edit video clips
... from moviepy.editor import *
Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
  File "C:\Python27\lib\site-packages\moviepy\editor.py", line 22, in <module>
    from .video.io.VideoFileClip import VideoFileClip
  File "C:\Python27\lib\site-packages\moviepy\video\io\VideoFileClip.py", line 3, in <module>
    from moviepy.video.VideoClip import VideoClip
  File "C:\Python27\lib\site-packages\moviepy\video\VideoClip.py", line 20, in <module>
    from .io.ffmpeg_writer import ffmpeg_write_image, ffmpeg_write_video
  File "C:\Python27\lib\site-packages\moviepy\video\io\ffmpeg_writer.py", line 15, in <module>
    from moviepy.config import get_setting
  File "C:\Python27\lib\site-packages\moviepy\config.py", line 38, in <module>
    FFMPEG_BINARY = get_exe()
  File "C:\Python27\lib\site-packages\imageio\plugins\ffmpeg.py", line 86, in get_exe
    raise NeedDownloadError('Need ffmpeg exe. '
imageio.core.fetching.NeedDownloadError: Need ffmpeg exe. You can download it by calling:
  imageio.plugins.ffmpeg.download()

Quel est le problème ici, et comment puis-je le résoudre?

8
Ingmar05

EDIT: Vous pouvez maintenant mettre à jour moviepy à la v0.2.3.3 avec pip install --upgrade moviepy et il installera automatiquement ffmpeg si nécessaire lors de l’importation de moviepy.editor ( # 731 )


Exécuter dans une console/un shell Python (par exemple, IPython/IDLE Shell):

>>> import imageio
>>> imageio.plugins.ffmpeg.download()

Moviepy dépend de la bibliothèque imageio, qui utilise le programme ffmpeg. Il doit le télécharger avant de pouvoir l'utiliser et vous pouvez le télécharger à l'aide de la commande imageio ci-dessus.

11
tburrows13

J'avais un problème similaire; le plugin ffmpeg a été téléchargé automatiquement pour moi, mais je ne pouvais toujours pas importer l'éditeur. Dans mon cas, il manquait une autre dépendance: je l’ai corrigée en faisant un

pip install --user requests


EXPLICATION:

  • (Contexte: inutile, mais peut-être utile pour les autres). J'avais besoin du imagepy.editor pour envoyer des tenseurs sous forme de vidéo à TensorBoard à l'aide de l'incroyable tensorboardX project. Comme je toujours avait une erreur d'importation, tbX n'arrêtait pas de me dire que j'avais besoin de imagepy, ce que j'avais. Voir le numéro correspondant à GitHub que j’ai ouvert pour plus de détails.

  • En regardant de plus près le module via import imagepy; help(imagepy), j'ai vu le sous-module editor répertorié, ce qui m'a encore plus troublé: essayer de l'importer a renvoyéAttributeError: 'module' object has no attribute 'editor'

  • Donc, l'erreur réelle devait être couverte quelque part. J'ai commenté la seule ligne dans le fichier __init__ du module (que vous pouvez trouver via imagepy.__file__) et ai ajouté un import editor explicite, qui a déclenché le message d'erreur suivant: ImportError: No module named requests

À ce stade, l'installation du package requests et la restauration du fichier __init__ à son état d'origine ont permis l'exécution du travail. J'espère que cela t'aides!

Cordialement, Andres

0
fr_andres