如何使用crontab自动启动在virtualenv中运行的python脚本?

问题描述 投票:0回答:1

这就是我通常在 Ubuntu 20.04 上的 virtualenv 中运行 python 脚本的方式。

source hibi/bin/activate
python -m hibiapi

现在我想做一个 cronjob 让它在启动时自动启动 python 脚本,但我不知道正确的语法。有人可以纠正我吗?

@reboot /var/www/api.adoreanime.com/htdocs/hibi/bin/python /var/www/api.adoreanime.com/htdocs/HibiAPI/hibiapi/ -m hibiapi

错误日志:

Traceback (most recent call last):
  File "/usr/lib/python3.8/runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.8/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/var/www/api.adoreanime.com/htdocs/HibiAPI/hibiapi/__main__.py", line 8, in <module>
    from . import __file__ as root_file
ImportError: attempted relative import with no known parent package
python cron
1个回答
1
投票

使用 shell 脚本来执行此操作。

cd /your/module/location
source hibi/bin/activate
/full/path/to/python -m hibiapi

将以上内容保存在脚本中,将其命名为

cron_run_hibiapi.sh

通过运行使您的脚本成为可执行文件:

chmod +x /full/path/to/cron_run_hibiapi.sh

使用

crontab
打开
crontab -e
并将以下行添加到底部。

@reboot /bin/bash -c "/full/path/to/cron_run_hibiapi.sh" &

这未经测试,但我相信它应该有效。

© www.soinside.com 2019 - 2024. All rights reserved.