如何使用Crontab在Django环境中运行Python文件?
我正在尝试制作一个Crontab作业,它将在每天凌晨4点运行一次Python脚本 这是我的crontab行如何使用Crontab在Django环境中运行Python文件?,python,django,django-models,crontab,Python,Django,Django Models,Crontab,我正在尝试制作一个Crontab作业,它将在每天凌晨4点运行一次Python脚本 这是我的crontab行 0 4 * * * cron_scripts/scripttorun.py 文件链接正确,正在尝试执行。但是,当它试图执行该文件时,它根据我的导入给了我一些错误。 这是我的python文件中导致崩溃的部分,它在第一行崩溃,因为它由于某种原因没有正确导入文件 from history.models import Model1 from users.models import User 我
0 4 * * * cron_scripts/scripttorun.py
文件链接正确,正在尝试执行。但是,当它试图执行该文件时,它根据我的导入给了我一些错误。
这是我的python文件中导致崩溃的部分,它在第一行崩溃,因为它由于某种原因没有正确导入文件
from history.models import Model1
from users.models import User
我正在尝试使用使用Django的web服务器上的一些其他代码运行Python文件。
为了能够导入我的模型,我需要做一些额外的事情吗
在Django中运行python Scriptorun.py时,我得到了相同的结果。您可以编写自定义的Django管理命令。请检查以下内容:
然后在crontab文件中包括:
0 4***python/path/to/myapp/manage.py scriptorun.py
您也可以这样做:
做点什么。py
#! /usr/bin/python
#coding:utf-8
from __future__ import unicode_literals
import os
os.environ["DJANGO_SETTINGS_MODULE"] = "prj.settings"
from app.models import YourModel
# do something
将文件放在与manage.py相同的位置
#! /usr/bin/python
#coding:utf-8
from __future__ import unicode_literals
import os
os.environ["DJANGO_SETTINGS_MODULE"] = "prj.settings"
from app.models import YourModel
# do something
如何使用,可以编写一个.sh脚本
cd pjc-directory
python do_something.py
然后使用
crontab
运行此脚本。我个人的建议是在app/management/commands/yourcommand.py中创建一个新命令
from django.core.management.base import BaseCommand, CommandError
class Command(BaseCommand):
help = "Might wanna add a help text"
args = '<arg>' # need args?
def handle(self, *args, **options):
# Do whatever you want to do
您应该从中获取runscript命令的战利品 它允许您创建简单的Django管理命令,其中包含所有Django环境 然后可以设置cron定期执行任务
Django扩展为您的Django项目提供了其他有用的工具,请查看。您遇到的具体错误是什么?肯定是这个。只需制作一个管理命令并运行它,而不是运行您自己的脚本。拿一个花了很多时间把头撞在这堵墙上的人来说——这很有效,而且很快。