2017-01-20 2 views
1

J'ai un site Django en cours d'exécution et toutes les mises à jour que je fais au code source ne seront pas mises à jour.Le code source Django ne sera pas mis à jour sur le serveur

(Raison Je change le fichier parce qu'une ligne de code génère une erreur.Ce qui est bizarre est que j'ai commenté cette ligne de code qui provoque l'erreur, mais le code s'exécute encore et provoque toujours l'erreur. Dans le django.log il montre que la ligne causant l'erreur encore, mais il montre aussi commenté maintenant.Alors le journal des erreurs montre mon nouveau code source, mais l'application elle-même n'exécute pas le nouveau code)

Je suis très nouveau à Django, donc je ne sais pas vraiment ce qui se passe ici (pas mon site, j'ai été projeté sur ce projet.)

Recherche autour de ceci, j'ai déjà essayé de redémarrer apache:

$ sudo apachectl restart

$ sudo service apache2 restart

et j'ai aussi essayé de toucher le fichier wsgi.py:

$ touch wsgi.py

et j'ai même supprimé le fichier .pyc. Rien n'a fonctionné et l'ancienne ligne de code est toujours en cours d'exécution, même si les journaux l'affichent en commentaire.

Je ne sais pas où d'autre vérifier ou quoi d'autre me manque.

+1

Utilisez-vous mod_wsgi pour apache pour exécuter Django, ou êtes-vous en cours d'exécution avec Django uwsgi ou gunicorn (derrière apache)? Si ce dernier, assurez-vous que vous redémarrez également ce processus. –

+0

Sur quoi tourne-t-il, est-il local ou en production? – BigMonkey89WithaLeg

+0

@JoeJ Je n'ai aucune idée. Où pourrais-je vérifier cela ou comment le saurais-je? – amallard

Répondre

2

Quel que soit le service que vous utilisez, effectuez un arrêt complet et un démarrage complet (c'est-à-dire, pas simplement un redémarrage).

sudo service apache2 stop 
sudo service apache2 start 

Si vous utilisez uwsgi ou gunicorn, vous devrez faire la même chose pour eux. Certains scripts d'initialisation lors de l'exécution de restart ne redémarrent pas le processus de travail maître, ce qui peut entraîner la mise en cache d'une version compilée en cache de votre fichier (avec le code incorrect).

+0

Si vous utilisez uwsgi la façon de redémarrer peut varier –

0

Avec l'aide de @ 2ps, j'ai été capable de comprendre mon problème. Quand j'ai essayé d'arrêter Apache, le site Web était toujours en place. Je me suis rendu compte qu'il y avait une autre adresse IP pour le site Web, donc je devine que le premier doit rediriger vers le second?

De toute façon, j'ai rouvert SSH dans l'autre adresse IP, redémarré Apache et le code source mis à jour immédiatement!

MISE À JOUR:

selon la demande de @VidyaSagar, je fournir plus d'informations car il semble être un coup de chance bizarre avec Django. Mon OP était qu'une certaine ligne de code causait une erreur. J'ai commenté cette ligne, supprimé le fichier .pyc et redémarré Apache. Une autre erreur s'est produite (comme prévu en raison du code). Donc, je n'ai pas commenté cette ligne à la façon dont il était précédemment, à nouveau supprimé le .pyc et redémarré Apache, et le système a fonctionné comme d'habitude. Il semble que Django voulait juste que je fasse une nouvelle recompilation du fichier?

Version de Django: 1.7.4

retraçage de django.log

ERROR Internal Server Error: /upload/ 
Traceback (most recent call last): 
    File "/home/company/app/lib/python2.7/site-packages/django/core/handlers/base.py", line 111, in get_response 
    response = wrapped_callback(request, *callback_args, **callback_kwargs) 
    File "/home/company/app/app/geo_app/views.py", line 306, in upload 
    shutil.make_archive(kml_dir, 'zip', root_dir=kml_dir) 
    File "/usr/lib/python2.7/shutil.py", line 521, in make_archive 
    save_cwd = os.getcwd() 
OSError: [Errno 2] No such file or directory 

ERROR Internal Server Error: /upload/ 
Traceback (most recent call last): 
    File "/home/company/app/lib/python2.7/site-packages/django/core/handlers/base.py", line 111, in get_response 
    response = wrapped_callback(request, *callback_args, **callback_kwargs) 
    File "/home/company/app/app/geo_app/views.py", line 306, in upload 
    # shutil.make_archive(kml_dir, 'zip', root_dir=kml_dir) 
    File "/usr/lib/python2.7/shutil.py", line 521, in make_archive 
    save_cwd = os.getcwd() 
OSError: [Errno 2] No such file or directory