Domanda

Ho visto un numero di moduli postgresql per Python come pygresql, pypgsql, psyco. Molti di essi sono conformi all'API 2.0 di Python DB, altri non vengono più sviluppati attivamente. Quale modulo mi consigliate? Perché?

È stato utile?

Soluzione

psycopg2 sembra essere il più popolare. Non ho mai avuto problemi con questo. In realtà esiste anche un'interfaccia Python pura per PostgreSQL, chiamata bpgsql . Non lo consiglierei su psycopg2, ma recentemente è diventato abbastanza capace da supportare Django ed è utile se non puoi compilare moduli C.

Altri suggerimenti

Suggerisco Psycopg su Psycopg2 poiché il primo sembra un po 'più nero. Almeno nella mia esperienza. Ho un'applicazione in esecuzione 24 ore su 24, 7 giorni su 7 e, a volte, ho ricevuto crash di memoria casuali (doppi errori gratuiti o di corruzione) da Psycopg2. Niente di cui avrei potuto eseguire il debug in modo rapido o semplice poiché non è un errore Python ma un errore C. Sono appena passato a Pyscopg e dopo non ho avuto alcun incidente.

Inoltre, come detto in un altro post, bpgsql sembra un'ottima alternativa. È stabile e facile da usare poiché non è necessario compilarlo. L'unico lato negativo è che la libreria non è thread-safe.

Pygresql sembra carino, c'è un modo più diretto per interrogare il database con questa libreria. Ma non so quanto sia stabile questo

Psycopg1 è noto per prestazioni migliori in ambienti con thread pesantemente (come le applicazioni Web) rispetto a Psycopg2, sebbene non mantenuto. Entrambi sono ben scritti e solidi, sceglierei uno di questi due a seconda del caso d'uso.

Nella mia esperienza, psycopg2 è la libreria più usata per questo. Come hai detto, è conforme a DB API 2.0, che offre un'interfaccia solida con cui lavorare.

Per coloro che ritengono che l'API standard sia un po 'troppo dettagliata e difficile da lavorare, ho creato una piccola libreria che potrebbe aiutare:

https://github.com/hugollm/rebel

Uso solo psycopg2 e non ho avuto problemi.

Ho usato pg8000 senza problemi negli ultimi 3 anni. È aggiornato e disponibile su Pypi e funziona sia su Python2 che su Python3. Puoi utilizzare " pip install pg8000 " per ottenerlo rapidamente (non dimenticare di usare --proxy = yourproxy: yourport se sei protetto da un firewall).

Se sei preoccupato per la sicurezza del thread, fornisce anche un punteggio per la sicurezza del thread (vedi: http: //pybrary.net/pg8000/dbapi.html e https: // www.python.org/dev/peps/pep-0249/ per le definizioni dei diversi livelli di sicurezza del thread) (anche se non ho ancora usato thread con psql).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top