Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.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
在cron中运行django manage.py命令_Django_Django Manage.py_Pipenv_Django Management Command - Fatal编程技术网

在cron中运行django manage.py命令

在cron中运行django manage.py命令,django,django-manage.py,pipenv,django-management-command,Django,Django Manage.py,Pipenv,Django Management Command,我已经编写了一些从cron运行的管理命令。我正在使用pipenv虚拟环境 从终点站直接运行非常有效 cd <project_path> pipenv run python manage.py <my_command> 我也试着听从命令 cd /home/project_path && python manage.py <my_command> 将文件run.py与settings.py文件放在根文件夹中(注意!您的项目结构可能不同): 然

我已经编写了一些从cron运行的管理命令。我正在使用
pipenv
虚拟环境

从终点站直接运行非常有效

cd <project_path> pipenv run python manage.py <my_command>
我也试着听从命令

 cd /home/project_path && python manage.py <my_command>

将文件run.py与settings.py文件放在根文件夹中(注意!您的项目结构可能不同):

然后转到应用程序文件夹,使用test()函数生成cron.py文件

def test():
   print ('Hello world')
最后将下一个命令输入控制台:


python run.py您的应用程序\u name.cron“test()”

解决我的问题的方法是设置每个模块的绝对路径,如

cd <project_path> && /root/.local/bin/pipenv run /home/user/.local/share/virtualenvs/myproject-IuTkL8w_/bin/python manage.py <my_command> 
cd&&/root/.local/bin/pipenv run/home/user/.local/share/virtualenvs/myproject-IuTkL8w\ubin/python manage.py

manage.py中查看您的python语法,但未对其进行任何更改。这是django提供的默认设置。它提供了
ImportError:No module named settings
。代码中是否使用了导入
设置
File "manage.py", line 14
    ) from exc
         ^
SyntaxError: invalid syntax
#!/usr/bin/env python
import os
import sys
import settings

p = os.path.abspath(os.path.join(os.path.dirname(__file__)))
sys.path.insert(0, '%s' % p)
sys.path.insert(0, '%s/apps' % p)
from django.core.wsgi import get_wsgi_application
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
from django.conf import settings
application = get_wsgi_application()

module_name = sys.argv[1]
exec('import %s' % module_name)
exec('%s.%s' % (module_name, ' '.join(sys.argv[2:])))
def test():
   print ('Hello world')
cd <project_path> && /root/.local/bin/pipenv run /home/user/.local/share/virtualenvs/myproject-IuTkL8w_/bin/python manage.py <my_command>