はじめに
Python
で Web アプリをデプロイする際に、
Django
や Flask
で Web アプリ開発を行い Heroku
にデプロイしたりすることが多いと思います。
このとき、conda
でライブラリのインストールをしていることがあると思います。
デプロイのため、requirements.txt
にライブラリを記載することになりますが、
pip
の場合は、 pip freeze > requirements.txt
で簡単にインストール済みのライブラリ一覧を作成できます。
conda
の場合は、 conda list -e > requirements.txt
とすると、ライブラリの一覧は作成できますが、{ライブラリ名}=={バージョン}
の形式に毎回変更しなければならず、少し面倒です。
bash
であれば awk
や sed
コマンドが使えるので、正規表現と組み合わせて、 pip freeze
の出力形式に近い形で出力できるようにしてみます。
awk, sed を利用した conda ライブラリ一覧の出力
conda list -e | awk -F'=' '{print $1,"==",$2}' | sed 's/ //g' | sed '/^#/d' > requirements.txt
このコマンドは、bash, zsh
などで動作します。 powershell
では動作しないので気をつけてください。
おおかた pip freeze
と同じような出力形式で conda
のライブラリ一覧を出力できると思いますので、requirements.txt
の作成が楽になると思います。
さいごに
上記のコマンドよりも良いやり方はあると思います。
正規表現は、さまざまな場面で使えそうだと思いました。