Macでoh-my-zsh、python 3.6.1を使用しています。crontab を実行して python3 スクリプトを実行したいと思います。
私の最近の試みの1つはこれでした(私が見つけた20の異なるstackoverflowの回答はどれも機能しなかったため、重複としてこれをシャットダウンしないでください:
SHELL=/bin/bash
24 12 * * * root source env/latest-env/bin/activate && /usr/local/bin/python3 /path/to/file/data_transfer.py
エラーは ですModuleNotFoundError: No module named 'some_module'
。そのモデルは最新の仮想環境に存在するため、virtual_env をアクティブ化していません。#!env/latest-env/bin/python
スクリプトの先頭で使用して実行すると、同じエラーが発生します。
代わりにvenvバージョンも試しました:
activate_this = '/path/to/env/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))
しかし、これはpython 2用であるため、エラーはNameError: name 'execfile' is not defined
、execに変更すると、NameError: name 'env' is not defined
. しかし、私はこれが私の道であることを知っています。
crontab で最新の venv を有効にしてスクリプトを実行するにはどうすればよいですか?