pipreqs で、必要最小限の requirements.txt を生成する
Python で作ったプログラムを他のPCで動かすときに必要となるモジュールがどれかわからないので、通常であれば、 requirements.txt を準備して配布する。
そしてその requirements.txt を使って、
pip install -r requirements.txt
この requirements.txt は一般的には以下のようにして作るのだが、
pip freeze > requirements.txt
このプログラムにとって必要最小限のモジュールだけ requirements.txt に入れるにはどうしたらよいか調べた。
pipreqs を使う
そのプログラムが必要とするモジュールだけを抜き出す pipreqs というコマンドを使えば、必要最小限の requirements.txt を生成できる。
デフォルトではおそらく入っていないのでインストールする。
pip install pipreqs
pipreqs .
INFO: Successfully saved requirements file in .\requirements.txt
WARNING: requirements.txt already exists, use --force to overwrite it
WARNING: requirements.txt already exists, use --force to overwrite it という警告がでることがあるが、読んで字のごとくすでに requirements.txt がいるので失敗している。
強制上書きさせたいなら、 --force をつけろ、ということなのでつける。
pipreqs --force .
UnicodeDecodeError: 'cp932' codec can't decode byte 0x86 in position 74: illegal multibyte sequence
Windows PC で Python の開発をしていて pipreqs を使うと上記のエラーがでることがある。
要は文字コードのアンマッチエラー。
なので、以下のように文字コードを指定してあげればよい。
pipreqs --encoding UTF8 .
以上!