首页 > 解决方案 > 如何在加载环境变量时将我的 python 命令作为 cron 运行?

问题描述

我在 Django 中使用 Python 3.7。我想在我运行的地方设置一个 cron 作业(“crontab -e”)

davea$ /bin/bash -l -c 'cd /Users/davea/Documents/workspace/mainpage_project; ./venv/bin/activate; python manage.py runstats'

但是,在运行时,我得到了错误

  File "manage.py", line 14
    ) from exc

如果我跑

cd /Users/davea/Documents/workspace/mainpage_project; ./venv/bin/activate; python manage.py runstats

一切运行良好,但我想加载环境变量,这就是我尝试前一个命令的原因。有没有办法修复第一个命令,以便我可以加载我的环境变量并执行我的脚本?下面是我的“manage.py”文件...

#!/usr/bin/env python
import os
import sys

if __name__ == '__main__':
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mainpage_project.settings')
    try:
        from django.core.management import execute_from_command_line
    except ImportError as exc:
        raise ImportError(
            "Couldn't import Django. Are you sure it's installed and "
            "available on your PYTHONPATH environment variable? Did you "
            "forget to activate a virtual environment?"
        ) from exc          # line 14
    execute_from_command_line(sys.argv)

标签: pythondjangopython-3.xcronenvironment-variables

解决方案


是的,您应该按照@dirkgorten 的建议使用 source ./venv/bin/activate 打开 virtualenv


推荐阅读