内容
requirements.txtを作成する際に、そのままだと対象のコードと関係ないライブラリもたくさん含まれてしまいます。関係ないライブラリを手動で取り除くのは面倒です。ライブラリを使って必要最小限のrequirements.txtを作成する方法を紹介します。
使用するライブラリ
- pipreqs
実行した環境
- Windows10
- コマンドプロンプト
手順
- pipreqsをインストール
pip install pipreqs
- プロジェクトのディレクトリを指定してpipreqsを実行
pipreqs /path/to/project/
- 生成されたrequirements.txtを確認
実行時のエラーと解消方法①
-
エラーメッセージ:
UnicodeDecodeError: 'cp932' codec can't decode byte
- 原因: pipreqsファイルのエンコーディングが正しく認識しない。
- 解消方法: pipreqsのソースコードをUTF-8に設定する。
修正前:
with open(file_path, 'r', encoding=encoding) as f:
修正後:
with open(file_path, 'r', encoding='utf-8') as f:
実行時のエラーと解消方法②
- エラーメッセージ: 明らかに想定しないライブラリが書かれたrequirements.txtが生成された。
- 原因: 対象にするディレクトリ全体を探索するため関係ないコードのライブラリも拾ってしまった。
- 解消方法: 対象の.pyファイルのみ別ディレクトリに移動させて(対象のファイルを絞って)からpipreqsを実行する。
感想
とても便利で感動しました。
今後もこのライブラリを使い続けるためにもコードを書き続けなければ・・・。