/ / L'exécution de scripts autonomes django dans la crontab détruit les commandes d'importation liées à django - python, django, crontab

L'exécution de scripts autonomes django dans la crontab détruit les commandes d'importation liées à django - python, django, crontab

J'ai essayé beaucoup de solutions pour résoudre ce problème,y compris l’utilisation des commandes de gestion personnalisées de django, des scripts python avec la configuration du chemin et la configuration de DJANGO_ENV_VAR, etc.

from django.db

ou

import django.utils

Voici un exemple d'une de mes traces d'erreur:

Traceback (most recent call last):
File "/home/username/webapps/folder/Project/scripts/standalone.py", line 29, in
<module> from Model.models import Model File "/home/username/webapps/folder/
Project/App/models.py", line 15, in <module> from django.db import models
ImportError: No module named django.db

Dans la crontab, j'ai suivi toutes les procédures générales. Toutes les configurations sont correctes, tous les scripts sont appelés avec leur chemin complet, c'est-à-dire. /usr/bin/python2.7 ou / usr / bin / sh.

Lorsque l'un de ces scripts est exécuté dans le shell et non dans crontab, cela fonctionne parfaitement: comme:

python2.7 manage.py killModels

ou

sh scrapper.sh >> log.log

Voici la crontab:

8,38,58 * * * * ~/webapps/Folder/apache2/bin/start
#*/1 * * * * /bin/sh ~/webapps/Folder/Project/scripts/unpack.sh >> ~/webapps/Folder/Project/logs/unpack.log 2>&1
*/25 * * * * ~/bin/indexer Model_Model --rotate --config
~/webapps/Folder/Project/misc/sphinx/sphinx.conf >> ~/webapps/Folder/Project/logs/searchd_log.txt
*/25 * * * * /bin/sh ~/webapps/Folder/Project/scripts/check_sphinx.sh >> ~/webapps/Folder/Project/logs/searchd_log.txt
0 2 * * * mysqldump --defaults-file=~/db_backups/Project_db.cnf -u Project_db Project_db >  ~/db_backups/Project_db-`date +%Y%m%d`.sql 2>> ~/db_backups/cron.log
*/1 * * * * /usr/local/bin/python2.7 ~/webapps/Folder/Project/manage.py UpdateModels >> ~/webapps/Folder/Project/logs/unpack.log 2>&1

Quelqu'un a des idées? Merci.

Réponses:

1 pour la réponse № 1

Remplacer:

*/1 * * * * /usr/local/bin/python2.7 
~/webapps/Folder/Project/manage.py UpdateModels 
>> ~/webapps/Folder/Project/logs/unpack.log 2>&1

par:

*/1 * * * * (cd ~/webapps/Folder/Project/; 
/usr/local/bin/python2.7 manage.py UpdateModels) 
>> ~/webapps/Folder/Project/logs/unpack.log 2>&1

Avec ce changement manage.py serait capable de localiser les applications Django.