virtualenv環境のpythonをcronで呼ぶ

概要

virtualenv環境で開発したPythonスクリプトをcronで呼び出したいとき、ライブラリとかをどうやって指定するのか分からなかったので考えてみた。

結論

以下のようなスクリプトを作っておき、これを呼び出せばOK。

#!/bin/sh

PROG_DIR=/usr/local/hoge
source $PROG_DIR/bin/activate

python $PROG_DIR/hoge.pyc

解説というほどでもないけど

要するに、普段やっているsource bin/activateを呼んでおけばいいという話。

なので上記のようなスクリプトを書いておけば対応できる。 引数がある場合にはスクリプトに引数を付ければOK。

crontab -eで上記スクリプトの呼び出しを追加すれば試合終了。

# m h dom mon dow       command
10 4 * * *              /usr/local/bin/hoge