【小ネタ】Pipfileにスクリプトショートカットを作成する
大阪オフィスの小倉です。
最近は仕事でPythonを書くようになり、Python仮想環境の管理にPipenvを使うようになりました。
最近知ったのですが、Pipenvにはスクリプトショートカットを作成、実行する機能があり、
個人的にとても便利に使っているので紹介します。
Pipfileのscripts節
Pipfileには、以下のようにscripts
節に、独自のスクリプトショートカットを書くことができます。
[scripts] test = "ls"
定義したtest
という名前のショートカットは、pipenv run test
で実行することが出来、
この例ではls
コマンドが実行されます。
複雑な処理でなければ、Makefile
や JavaScirptのpackage.json
の様に使えそうです。
利用例
例えば、Python、Lambda Layers、AWS CDKでアプリを作る場合、
デプロイ前にインストールしたPythonモジュールをLambda Layersに纏めるのですが、
[scripts] deploy = "bash -c \"PIP_TARGET='./layer/python' pipenv sync && cdk deploy xxxxxxxx\""
と書いておくと、pipenv run deploy
を実行することで、
layer/python
ディレクトリへのモジュールインストール- CDKによるデプロイ
をまとめて実行出来ます。
※PIP_TARGET
についてはこちらのブログを参照ください
- 【小ネタ】Lambda Layersのパッケージ作成に便利!!pipenvでsync対象ディレクトリを指定する方法
余談
スクリプトショートカットは複数作成出来、それらをつなぎ合わせることも可能なようです。
[scripts] command = "bash -c \"ls | xargs pipenv run command2\"" command2 = "stat"
pipenv run command
を実行すると、ls
コマンドの結果が、pipenv run command2
= stat
コマンドに渡されます。
使い方次第ではもっといろんな応用が出来そうですね。良いアイディアがあればまたブログにしたいと思います。
おわりに
小ネタでしたが、個人的にLambda Layers+CDKでの開発が快適になったのでブログにしてみました。
この記事がどなたかのお役に立てば幸いです。
以上、大阪オフィスの小倉でした。