Loading [MathJax]/jax/output/HTML-CSS/config.js

Pythonで from moviepy.editor import … が通らないときの対処法

Python
スポンサーリンク

あ…ありのまま
今 起こった事を話すぜ!

pip install moviepyをしたんだ……
だがmoviepy.editor が無かったんだ……

な…何を言っているのかわからねーと思うが、おれも何を受けたのかわからなかった…
頭がどうにかなりそうだった…
タイプミスだとか仮想環境違いだとか
そんなチャチなもんじゃあ断じてねえ
もっと恐ろしいものの片鱗を味わったぜ…

ということで、今回は「pip install moviepy したのに editor が無い⁉」という、
初見殺しな沼についての対応策をまとめました。
後方互換の無いパッケージに適用できます。

pip install moviepy でハマった話:Version違いに要注意

背景と目的

静止画をつなげて動画を作成するために、Pythonライブラリ moviepy を使おうとしました。
有名ライブラリなので安心…と思いきや、意外な落とし穴がありました。

  • 環境:Windows + Python 3.13
  • 実行場所:OneDrive配下のディレクトリ

発生した問題

まず pip install moviepy は普通に成功しました。
しかし、その後に以下のコードで動画を作成しようとすると…

Python
from moviepy.editor import ImageClip

次のようなエラーが発生:

Console
ModuleNotFoundError: No module named 'moviepy.editor'

え? moviepy.editor が無い?

調査して分かったこと

pip install moviepy したはずなのに、Lib/site-packages/moviepy/ の中身を見ると…

  • audio/video/ はある
  • でも肝心の editor.py見当たらない

つまり、moviepy.editor という構成が存在しない別物だったのです。


真相:まさかのVersionアップで互換性の無くなったmoviepy

PyPI(The Python Package Index)は moviepy という名前の最新Versionを取ってきます。

本来使いたかったのは、Zulko氏による以下の公式版のV1.0系統:

GitHub - Zulko/moviepy: Video editing with Python
Video editing with Python. Contribute to Zulko/moviepy development by creating an account on GitHub.

ところが、Versionが変わって馴染みのある関数が使えなくなりました。
名前は正しくても中身が違う――PyPIあるあるですね。


解決方法

現状のmoviepyをアンインストール

Console
pip uninstall moviepy

使いたいmoviepyのVersionを明示してインストール

moviepy 2.0以降では構成が大きく変更されており、editor.py は削除または統合されている可能性があります。従来の from moviepy.editor import ... を使いたい場合は、v1.0.3 などの旧バージョンを指定するのが確実です。

PyPI上で旧バージョン(1.0.3)を指定

Console
pip install moviepy==1.0.3

補足:他にも注意すべきポイント
問題対処内容
moviepy.editor が見つからないmoviepy/editor.py が存在するかをまず確認
audio/video フォルダしかない公式版ではない可能性あり。PyPIの配布元や作者情報をチェック
スクリプト名が moviepy.pyファイル名が import とバッティング → モジュールループが発生

まとめ

  • pip install moviepy は一見問題なく通っても、中身が使いたい物とは限らない(後方非互換に注意!)
  • moviepy.editor を使う場合、editor.py が存在するか確認すべし
  • Versionを明示的にインストール
  • ファイル名や import の競合にも注意

後方互換が無いライブラリの場合、明示的にバージョン指定するのが鉄則ですね。


関連リンク


0

コメント

タイトルとURLをコピーしました