jinno_keisuke
@jinno_keisuke (じんじん)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

M1 Macでcrontabからpythonスクリプトが実施されない

解決したいこと

M11のmacブックで久しぶりにcrontabからpythonスクリプトを実行しようとしているのですが
うんともすんとも言わずにドハマリして困っています。

発生している問題・エラー

pythonスクリプトの実行に限って、crontabが実行されない。
その他のcrontabコマンドは問題なく実行される。

該当するソースコード

PATH=/Library/Frameworks/Python.framework/Version/3.10/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/Library/Frameworks/Python.framework/Versions/3.10/bin:/Library/Frameworks/Python.framework/Versions/3.9/bin:/Library/Frameworks/Python.framework/Versions/3.6/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin:/Library/Frameworks/Python.framework/Version/3.10/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/Library/Frameworks/Python.framework/Versions/3.10/bin:/Library/Frameworks/Python.framework/Versions/3.9/bin:/Library/Frameworks/Python.framework/Versions/3.6/bin

*/2 * * * /Library/Frameworks/Python.framework/Versions/3.10/bin/python3 /Users/author/i_gui/test.py

python /Users/author/i_gui/test.py
print('test test test')

自分で試したこと

which python3の結果:
/Library/Frameworks/Python.framework/Versions/3.10/bin/python3
crontabにフルコントロールはあたっているし、PATHも追記してるし。
crontabの記述も間違っていないと思います。
pythonをversion10にアップグレードするのにhomebrewではないくてpython.orgの
インストーラーを利用したのが良くなかったのでしょうか?
pythonスクリプト以外にデスクトップにテキストファイルを作成するようなのは問題なく稼働します。
少し前には動いていたのに突然ハマって困っています。
どういった可能性が考えられるでしょうか?

0

1Answer

pythonスクリプトの実行に限って、crontabが実行されない。
その他のcrontabコマンドは問題なく実行される。

という事なのでまずはcrontab自体は動いていると考えていいと思います。なので、python3の実行環境(下のもの以外でも何か思いつくものがあれば)をまずは確認して、それがcron実行時とどう違うのかを確認してみたりしても良いかも知れません。

まず普通にterminalで
$ which python3 > ~/terminal_which.txt
$ printenv > ~/terminal_printenv.txt
$ whoami > ~/terminal_whoami.txt

これをcrontabに書いて、1分後に実行されファイルが出来たのを確認してcrontabから消す。

これをcrontabに
* * * * * which python3 > ~/cron_which.txt
* * * * * printenv > ~/cron_printenv.txt
* * * * * whoami > ~/cron_whoami.txt

これらの内容の違いでなぜ動かないのかなど分かると思います。

0Like

Comments

  1. @jinno_keisuke

    Questioner

    回答をいただきましてありがとうございます。

    力技なのですが、一度環境クリアにしてゼロから環境を作り直し
    pythonも入れ直してうまく動くようになりました。

    IntelからM1に乗り換えたときにそのままバックアップしたので
    多分PATHの問題だと思ってるのですがよくわからず。
    もう少し頑張れば原因が掴めたかもしれませんが、Unix系の知識が
    足らずうまくいきませんでした。

    せっかくご意見を頂いたのにもうしわけありません。

Your answer might help someone💌