2010-09-03 3 views
2

J'ai installé django/postgres sur un serveur django local et fonctionne correctement. J'essaye de faire fonctionner Apache. J'ai mis en place le mod_wsgi et j'ai pu obtenir un "Hello World", et redémarrer Apache. Je suis presque là, mais quand je soulève je reçois localhost/index.html cette erreur de serveur:django, postgres 8.4, psycopg 2.2.2, python 2.7, mod_wsgi

TemplateSyntaxError: Caught ImproperlyConfigured while rendering: 
'django.db.backends.postgresql_psycopg2' isn't an available database 
backend. 
[Thu Sep 02 13:46:30 2010] [error] [client 127.0.0.1] Try using 
django.db.backends.XXX, where XXX is one of: 
[Thu Sep 02 13:46:30 2010] [error] [client 127.0.0.1]  'dummy', 
'mysql', 'oracle', 'postgresql', 'postgresql_psycopg2', 'sqlite3' 
[Thu Sep 02 13:46:30 2010] [error] [client 127.0.0.1] Error was: 
cannot import name utils 

Est-il possible que mod_wsgi et la psycopg version sont incompatibles? Quelqu'un at-il essayé ce type d'installation?

Mise à jour 1:

Je rétrogradé à 2,6, mod_wsgi, psycopg2 et toujours obtenir cette erreur dans le fichier journal apache.

Fri Sep 03 12:17:41 2010] [error] [client 97.80.165.181] File "C:\Python26\lib\site-packages\django\db\__init__.py", line 77, in [Fri Sep 03 12:17:41 2010] [error] [client 97.80.165.181] connection = connections[DEFAULT_DB_ALIAS] [Fri Sep 03 12:17:41 2010] [error] [client 97.80.165.181] File "C:\Python26\lib\site-packages\django\db\utils.py", line 91, in getitem [Fri Sep 03 12:17:41 2010] [error] [client 97.80.165.181] backend = load_backend(db['ENGINE']) [Fri Sep 03 12:17:41 2010] [error] [client 97.80.165.181] File "C:\Python26\lib\site-packages\django\db\utils.py", line 49, in load_backend [Fri Sep 03 12:17:41 2010] [error] [client 97.80.165.181] raise ImproperlyConfigured(error_msg) [Fri Sep 03 12:17:41 2010] [error] [client 97.80.165.181] TemplateSyntaxError: Caught ImproperlyConfigured while rendering: 'django.db.backends.postgresql_psycopg2' isn't an available database backend. [Fri Sep 03 12:17:41 2010] [error] [client 97.80.165.181] Try using django.db.backends.XXX, where XXX is one of: [Fri Sep 03 12:17:41 2010] [error] [client 97.80.165.181]
'dummy', 'mysql', 'oracle', 'postgresql', 'postgresql_psycopg2', 'sqlite3' [Fri Sep 03 12:17:41 2010] [error] [client 97.80.165.181] Error was: cannot import name utils

Savez-vous ce que cela pourrait indiquer?

Mise à jour 2:

La cause est dans le fichier django/db/backend/postgresql_psycopg2/base.py, la version 2.2.2, numéro de la ligne 9: de utils importation django.db

Mais je ne sais toujours pas comment résoudre ce problème. Il y a un fichier django/db/utils.py, donc ça devrait marcher. Et cela fonctionne pour le serveur de développement, après tout. Mais pas pour Apache + mod_wsgi

+0

De la mémoire est en fait ce faire avec une certaine DLL d'exécution fenêtre C ne sont pas liés à Apache comme il est avec Python. Il y a quelque chose dans le module d'extension psycopg2 C qui en dépend et parce qu'il manque, il échoue. L'erreur bien que vue est l'obscure ci-dessus qui ne donne pas vraiment un pointeur au problème. Je crois que les gens de pyscopg2 sont conscients du problème. Pas sûr de ce qu'ils vont faire à ce sujet, mais il y avait une activité récente à ce sujet sur leur tracker de problème. Mais alors ma mémoire pourrait être fausse et c'est tout fantasme. –

+0

Si quelqu'un utilise Django 1.4.x se penche sur cette question ... Essayez de passer à la version la plus récente de Django (1.4.2 au moment de l'écriture). Je recevais une erreur similaire en 2012 avec Django 1.4.1. J'ai mis à jour vers Django 1.4.2 et j'ai arrêté d'avoir l'erreur. – hangtwenty

Répondre

1

Peut-être this Ticket vous aide:

or whatever it is worth, I have confirmed that if I downgrade python to 2.6 and then likewise downgrade mod_wsgi and psycopg2, Django will work with Postgres on Apache as expected