仮想環境venv内でcronを実行する方法
2018年07月09日
サーバ内での環境構築で、仮想環境を使用してプロジェクトを作成する場合があると思います。
ただし、仮想環境で作成したプログラムは主に仮想環境内で実行しているので、仮想環境の外からcronを実行しようとした場合に動作しない場合があります。
その場合で、cronで仮想環境からプログラムを実行する手順について調べました。
手順としては、シェルスクリプト(.sh)を作成して、シェルスクリプト内でサーバ内のディレクトリを移動し、仮想環境を有効にしてからプログラムを実行。
後に仮想環境から出るという手順で問題なく実行できました。
以下は仮想環境のvenvを使用した例です。
#! /bin/bash cd /ディレクトリパス/ #仮想環境のパス . 仮想環境名/bin/activate #仮想環境を有効にする cd /ディレクトリパス #プログラムを実行できる階層へ移動(必要なければする必要なし) コマンドの実行 deactivate #仮想環境から抜ける
上記のシェルスクリプト(.sh)を作成し、cronで実行することで問題なく実行することができました。