Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Crontab在Django环境中运行Python文件?_Python_Django_Django Models_Crontab - Fatal编程技术网

如何使用Crontab在Django环境中运行Python文件?

如何使用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 我

我正在尝试制作一个Crontab作业,它将在每天凌晨4点运行一次Python脚本

这是我的crontab行

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项目提供了其他有用的工具,请查看。

您遇到的具体错误是什么?肯定是这个。只需制作一个管理命令并运行它,而不是运行您自己的脚本。拿一个花了很多时间把头撞在这堵墙上的人来说——这很有效,而且很快。