あ…ありのまま
今 起こった事を話すぜ!
pip install moviepy
をしたんだ……
だがmoviepy.editor
が無かったんだ……
な…何を言っているのかわからねーと思うが、おれも何を受けたのかわからなかった…
頭がどうにかなりそうだった…
タイプミスだとか仮想環境違いだとか
そんなチャチなもんじゃあ断じてねえ
もっと恐ろしいものの片鱗を味わったぜ…
ということで、今回は「pip install moviepy したのに editor が無い⁉」という、
初見殺しな沼についての対応策をまとめました。
後方互換の無いパッケージに適用できます。
Contents
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 PythonVideo 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 の競合にも注意
後方互換が無いライブラリの場合、明示的にバージョン指定するのが鉄則ですね。
コメント