mirror of
https://github.com/psycopg/psycopg2.git
synced 2024-11-28 03:43:43 +03:00
PostgreSQL database adapter for the Python programming language
60fe90d531
Multithreaded programs using libcrypto (part of OpenSSL) need to set up callbacks to ensure safe execution. Both Python and libpq set up those callbacks, which might lead to a conflict. To avoid leaving dangling function pointers when being unloaded, libpq sets up and removes the callbacks every time a SSL connection it opened and closed. If another Python thread is performing unrelated SSL operations (like connecting to a HTTPS server), this might lead to deadlocks, as described in http://www.postgresql.org/message-id/871tlzrlkq.fsf@wulczer.org Even if the problem will be remediated in libpq, it's still useful to have it fixed in psycopg2. The solution is to use Python's own libcrypto callbacks and completely disable handling them in libpq. |
||
---|---|---|
doc | ||
examples | ||
lib | ||
psycopg | ||
sandbox | ||
scripts | ||
tests | ||
.gitignore | ||
.travis.yml | ||
AUTHORS | ||
INSTALL | ||
LICENSE | ||
Makefile | ||
MANIFEST.in | ||
NEWS | ||
psycopg2.cproj | ||
psycopg2.sln | ||
README.rst | ||
setup.cfg | ||
setup.py | ||
tox.ini |
psycopg2 - Python-PostgreSQL Database Adapter ============================================= Psycopg is the most popular PostgreSQL database adapter for the Python programming language. Its main features are the complete implementation of the Python DB API 2.0 specification and the thread safety (several threads can share the same connection). It was designed for heavily multi-threaded applications that create and destroy lots of cursors and make a large number of concurrent "INSERT"s or "UPDATE"s. Psycopg 2 is mostly implemented in C as a libpq wrapper, resulting in being both efficient and secure. It features client-side and server-side cursors, asynchronous communication and notifications, "COPY TO/COPY FROM" support. Many Python types are supported out-of-the-box and adapted to matching PostgreSQL data types; adaptation can be extended and customized thanks to a flexible objects adaptation system. Psycopg 2 is both Unicode and Python 3 friendly. Documentation ------------- Documentation is included in the 'doc' directory and is `available online`__. .. __: http://initd.org/psycopg/docs/ Installation ------------ If all the dependencies are met (i.e. you have the Python and libpq development packages installed in your system) the standard:: python setup.py build sudo python setup.py install should work no problem. In case you have any problem check the 'install' and the 'faq' documents in the docs or online__. .. __: http://initd.org/psycopg/docs/install.html For any other resource (source code repository, bug tracker, mailing list) please check the `project homepage`__. .. __: http://initd.org/psycopg/