Appunti Plone

Tips, Tricks & mini howto

Psycopg2, Plone e buildout (su Mac)

leave a comment »

Scrivo questo breve post per ricordami come ho fatto a installare la versione 2.0.11 di Psycopg2 utile a collegare Plone con banche dati in Postgres, e come monito ai posteri 😀

Tutto nasce da un odioso errore che ho ottenuto al momento di creare un collegamento in ZMI al mio Postgres:

ImportError: psycopg version mismatch (imported 2.0.11 (dt dec ext pq3))

Premetto subito: è un lavoro sporco (con la versione di psycopg2 2.0.11) da fare sulla piattaforma MacOS Leopard con a bordo il python 2.4.

Gli steps riguardano fondamentalmente: l’installazione di Postgres, configurazione e installazione del modulo per python e fixaggio del database adapter da porre nel buildout.

In teoria esistono degli eggs che fanno tutto ciò. Io gli ho provati a volo e non funzionavano affatto (per me) 😥

1. Scaricate il pacchetto dmg di Postgres dal sito ufficiale http://www.postgresql.org/ e installate.

2. Scaricate il pacchetto Psycopg2 (2.0.11) http://initd.org/pub/software/psycopg/PSYCOPG-2-0/psycopg2-2.0.11.tar.gz

2a. spacchettate in una cartella temporanea con il classico tar xzvf psycopg2-2.0.11.tar.gz ed entrate nella cartella creata.

2b. aprite il file chiamato setup.cfg e quindi scommentate il parametro “pg_config” e dategli in pasto la locazione del file pg_config della vostra installazione di Postgres. Nel mio caso il valore messo è “/Library/PostgreSQL/8.3/bin/pg_config”. Salvate.

2b. quindi passiamo alla installazione del pacchetto con: sudo setup.py build e dopo un bel sudo setup.py install

3. Ora il modulo psycopg2 è installato in python (suppongo!). Per controllare richiamate il python di sistema e quindi provate a dare un import psycopg2, se non ottenete un feedback negativo vuol dire che – per il momento – è tutto ok.

4. Sempre nella directory dello psycopg troverete una cartella denominata ZPsycopgDA, copiatela e incollatela nella cartella “products” del buildout che volete utilizzare.

5. Fix (odiosa) da fare per far funzionare (solo?) questa versione di psycopg: entrate nella cartella del vostro buildout, quindi in products e in ZPsycopgDA. Editate il file DA.py ponendo una nuova entry nella lista della variabile chiamata ALLOWED_PSYCOPG_VERSIONS . Ora dovrebbe avere valore

ALLOWED_PSYCOPG_VERSIONS = ('2.0.7','2.0.8','2.0.9','2.0.10', '2.0.11'),

aggiungiamo un bel ‘2.0.11 (dt dec ext pq3)’ per ottenere:

ALLOWED_PSYCOPG_VERSIONS = ('2.0.7','2.0.8','2.0.9','2.0.10', '2.0.11', '2.0.11 (dt dec ext pq3)')

poi scendere alla riga

if psycopg2.__version__[:5] not in ALLOWED_PSYCOPG_VERSIONS:

e modificarla con

if psycopg2.__version__.split(' ')[0] not in ALLOWED_PSYCOPG_VERSIONS:

salvare e incrociare le dita 😀

5. Una volta “acceso” il vostro buildout dovreste essere in grado di aggiungere uno Z Psycopg 2 Database Connection (via ZMI) senza intoppi 😉

Written by vito80ba

12 marzo 2010 a 12:02

Pubblicato su Plone

Lascia un commento