HOWTO: “psycopg2 module: cannot import name tz”
Già ho scritto a riguardo di postgres + psycopg2 + django e nell’utilizzo (dunque la compilazione è andata a buon fine) di psycopg2 con django puoi incappare in un errore del genere:
raise ImproperlyConfigured("Error loading psycopg2 module: %s" % e)
ImproperlyConfigured: Error loading psycopg2 module: cannot import name tz
Ho cercato molto in giro e non ho mai trovato una soluzione a questo errore,
finché la mia perseveranza ha trovato un’uscita. Praticamente questo errore è
scaturito poiché il tuo server non riesce a scrivere sul path
PYTHON_EGG_CACHE e di conseguenza non può usare le eggs.
Il vero fix e però nella configurazione del tuo mod_python o del mod_wsgi,
in modo da configurare questo path.
Per il mod_wsgi, modifica il file .wsgi del tuo progetto aggiungendoci
questa riga:
os.environ['PYTHON_EGG_CACHE'] = '/writable/path/.python-eggs'
Dove il path che vai ad inserire è scrivibile dall’utente che esegue il web server come, ad esempio, www-data.
Per quanto riguarda mod_python segui questi due passaggi:
-
Crea un piccolo modulo python “eggs.py” e mettici dentro queste due righe:
import os os.environ['PYTHON_EGG_CACHE'] = '/home/django/.python-eggs'
-
Nel file del tuo virtualhost aggiungi le seguenti direttive:
PythonInterpreter my_django PythonImport /path/to/my/profile/eggs.py my_django
Sia per mod_wsgi sia per mod_python, a modifiche finite riavvia il tuo server web e controlla se tutto funziona correttamente.
Come al solito se hai domande, suggerimenti, critiche, altro… scrivimi oppure commenta il post! :)
Fonte: lethain.com
Comments