ロリポップのレンタルサーバでpythonスクリプトをcron実行できないときに確認すること

カテゴリ: python

ロリポップのレンタルサーバでpythonスクリプトを実行しようとして、sshから直接コマンドを実行すると動くのにcronから自動実行するとうまく動かないことがありました。

which pythonコマンドをそれぞれの環境で実行したところ、以下のように使用しているpythonコマンドが異なっていました

# sshから対話的に実行した時の出力
/usr/local/bin/python

# cronから実行した時の出力
/usr/bin/python

それぞれのpythonコマンドのバージョンを確認すると、python2系と3系が異なっていることがわかりました。

$ /usr/local/bin/python --version
Python 3.4.1

$ /usr/bin/python --version
Python 2.6.6

このため、cronから実行する場合に、試しにpythonコマンドをフルパスで指定すると、想定したversionのpythonが動作するようになり、問題が解決しました。

#!/bin/bash
#
# cron script
#

/usr/local/bin/python foo.py
こちらもおススメ

コメントを残す

メールアドレスが公開されることはありません。