2009-09-07 9 views
0

Je cours django sur Dreamhost en ce moment avec fastcgi, et je reçois un comportement vraiment bizarre. Premièrement, le serveur exécute Python 2.3. Sur mon ordinateur, je cours 2.6 et tout mon code source fonctionne. Quand je l'ai mis sur mon hôte, rien ne fonctionne. En ce moment, quand je Pkill python, puis charger une page, la première erreur se plaint d'une erreur de syntaxe à la ligne «classe item_list():erreur django non-cohérente

from dtms.models import * 

class Item_list(): 
    def __init__(self, list = None, house_id = None): 
     self.list = list 
     self.house_id = house_id 

    def ret_list(self): 
     return self.list 

Alors, si je le recharger à nouveau sans changer quoi que ce soit, je reçois cette erreur:

Django Version: 1.1 alpha 1 SVN-10114 
Python Version: 2.3.5 
Installed Applications: 
['django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.sites', 
'django.contrib.admin', 
'mysite.dtms'] 
Installed Middleware: 
('django.middleware.common.CommonMiddleware', 
'django.contrib.sessions.middleware.SessionMiddleware', 
'django.contrib.auth.middleware.AuthenticationMiddleware')
Traceback: 
File "/home/victor/django/django_src/django/core/handlers/base.py" in get_response 
    82.    callback, callback_args, callback_kwargs = resolver.resolve(
File "/home/victor/django/django_src/django/core/urlresolvers.py" in resolve 
    184.    for pattern in self.url_patterns: 
File "/home/victor/django/django_src/django/core/urlresolvers.py" in _get_url_patterns 
    212.    raise ImproperlyConfigured("The included urlconf %s doesn't have any" 

Exception Type: ImproperlyConfigured at /dtms/login/ 
Exception Value: The included urlconf mysite.urls doesn't have anypatterns in it 

Des idées?

Répondre

3

class Item_list():

Vous ne pouvez pas inclure une liste d'héritage vide dans Python 2.3. Il semble y avoir eu un changement dans la grammaire qui lui permet now mais pas then.

Il serait normalement écrit:

class Item_list: 

si vous ne voulez pas de classes de base. Mais généralement ces jours-ci vous voudriez dériver de l'objet pour obtenir des classes de nouveau style. Je ne connais pas grand-chose à votre environnement de déploiement, mais en général, lorsque vous avez essayé d'importer quelque chose et d'obtenir une exception, il peut laisser des modules partiellement initialisés dans sys.modules qui vont frustrer les futures tentatives d'importation eux, résultant en des erreurs autrement inexplicables où les propriétés et les actions du module ne sont pas où ils étaient attendus.

En général, une fois qu'une importation a échoué, vous devez considérer l'environnement comme perdu et recommencer, mais je ne sais pas comment votre déploiement Django gère les erreurs de ce type et les problèmes de redémarrage du processus. Peut-être que l'erreur d'origine a laissé un interpréteur en cours d'exécution sans avoir écrit le contenu attendu dans url_patterns, ou quelque chose comme ça.

+0

Je pense que je suis en train de courir dans ça maintenant. Maintenant, je reçois des erreurs que les types ne sont pas trouvés lorsque je les importe clairement. Je fais python, mais y a-t-il autre chose que je dois faire? – victor

+0

Vous devrez peut-être redémarrer le serveur. Je ne sais pas comment vous déployez votre application. est-ce que le serveur fastcgi a des interpréteurs Python intégrés, par exemple, qui ne sont pas lancés en tant que processus python séparés que pkill attraperait? Configurer les serveurs pour qu'ils répondent correctement à leurs scripts en cours de modification n'est pas standardisé, mais il devrait y avoir une * certaine * façon de le faire ... – bobince