/note/tech

venvをactivateしてPYTHONPATHを設定するシェルスクリプト

click や Invoke などを使ってたり、複数のモジュールから構成される Python スクリプトを実行したい時、venv を activate したり、Path を通す必要があったりとか面倒なので、bash で以下のようなラッパーを作っておくと便利。

#!/usr/bin/env bash

cd $(dirname $0)
APP_HOME=$(pwd)

source ${APP_HOME}/venv/bin/activate
export PYTHONPATH=${APP_HOME}/lib
python3 ${APP_HOME}/lib/command.py $@

APP_HOMEにはアプリのルートディレクトリが設定されればよいので、ディレクトリ配置に応じて適宜書き替えること。

cron から実行したい場合もこうしておいた方が楽であるな。