Pergunta

Eu vi um número de módulos PostgreSQL para python como PyGreSQL, pypgsql, psyco. A maioria deles são Python DB API 2.0 compatível, alguns não estão sendo ativamente desenvolvido mais. Qual módulo que você recomendaria? Por quê?

Foi útil?

Solução

psycopg2 parece ser o mais popular. Eu nunca tive qualquer problema com ele. Na verdade, há uma interface Python puro para PostgreSQL também, chamado bpgsql . Eu não recomendaria sobre psycopg2, mas recentemente se tornou bastante capaz para apoiar Django e é útil se você não pode módulos de compilação C.

Outras dicas

Eu sugiro psycopg sobre psycopg2 desde o primeiro parece um pouco mais sable. Pelo menos na minha experiência. Eu tenho um aplicativo em execução 24/7 e às vezes eu estava ficando acidentes de memória aleatório (duplo erros gratuitos ou de corrupção) a partir psycopg2. Nada do que eu poderia ter depuração rápida ou facilmente, uma vez que não é um erro de Python, mas um erro C. Eu só mudei para Pyscopg e eu não recebi qualquer falha depois disso.

Além disso, como disse em uma outra post, bpgsql parece uma alternativa muito boa. É estável e fácil de usar desde que você não precisa compilar. O único lado ruim é que a biblioteca não é threadsafe.

PyGreSQL parece bom, há uma maneira mais direta para consultar o banco de dados com esta biblioteca. Mas eu não sei como estável este é apesar de tudo.

Psycopg1 é conhecido por melhor desempenho em heavilyy rosca ambientes (como aplicações web) do que psycopg2, embora não seja mantida. Ambos são bem escrito e rocha sólida, eu escolheria um destes dois, dependendo do caso de uso.

Na minha experiência, psycopg2 é a biblioteca mais usado para isso. Como você disse, é DB API 2.0, wich dá uma interface sólida para trabalhar.

Para aqueles que acham a API padrão a ser um pouco muito detalhado e difícil de trabalhar, fiz uma pequena biblioteca que podem ajudar:

https://github.com/hugollm/rebel

I usa apenas psycopg2 e não tinha problemas com isso.

Eu usei pg8000 sem quaisquer problemas nos últimos 3 anos. É uptodate e disponível em pypi e funciona tanto em python2 e python3. Você pode usar "pip instalar pg8000" para obtê-lo rapidamente (não se esqueça de usar --proxy = yourproxy: yourport se você estiver atrás de um firewall).

Se você está preocupado com a segurança do segmento, ele também fornece uma pontuação para a segurança do thread (ver: http: //pybrary.net/pg8000/dbapi.html e https: // www.python.org/dev/peps/pep-0249/ para definições dos diferentes níveis de segurança do segmento) (embora eu não tenha ainda tópicos usado com psql).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top