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 は普通に成功しました。
しかし、その後に以下のコードで動画を作成しようとすると…

from moviepy.editor import ImageClip

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

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をアンインストール

pip uninstall moviepy

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

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

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

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 の競合にも注意

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


関連リンク


コメント

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