mirror of
https://github.com/psycopg/psycopg2.git
synced 2024-11-27 03:13:43 +03:00
104 lines
3.3 KiB
Plaintext
104 lines
3.3 KiB
Plaintext
Compiling and installing psycopg
|
|
********************************
|
|
|
|
** Important note: if you plan to use psyopg2 in a multithreaed application
|
|
make sure that your libpq has been compiled with the --with-thread-safety
|
|
option. psycopg2 will work correctly even with a non-thread-safe libpq but
|
|
libpq will leak memory.
|
|
|
|
psycopg2 uses distutils for its build process, so most of the process is
|
|
executed by the setup.py script. Before building psycopg look at
|
|
setup.cfg file and change any settings to follow your system (or taste);
|
|
then:
|
|
|
|
python setup.py build
|
|
|
|
to build in the local directory; and:
|
|
|
|
python setup.py install
|
|
|
|
to install system-wide.
|
|
|
|
|
|
Common errors and build problems
|
|
================================
|
|
|
|
One of the most common errors is trying to build psycopg without the right
|
|
development headers for PostgreSQL, Python or both. If you get errors, look
|
|
for the following messages and then take the appropriate action:
|
|
|
|
libpq-fe.h: No such file or directory
|
|
PostgreSQL headers are not properly installed on your system or are
|
|
installed in a non default path. First make sure they are installed, then
|
|
check setup.cfg and make sure pg_config points to a valid pg_config
|
|
executable. If you don't have a working pg_config try to play with the
|
|
include_dirs variable (and note that a working pg_config is better.)
|
|
|
|
|
|
Running the test suite
|
|
======================
|
|
|
|
The included Makefile allows to run all the tests included in the
|
|
distribution. Just use:
|
|
|
|
make
|
|
make runtests
|
|
|
|
The tests are run against a database called psycopg2_test on unix socket
|
|
and standard port. You can configure a different database to run the test
|
|
by setting the environment variables:
|
|
|
|
- PSYCOPG2_TESTDB
|
|
- PSYCOPG2_TESTDB_HOST
|
|
- PSYCOPG2_TESTDB_PORT
|
|
- PSYCOPG2_TESTDB_USER
|
|
|
|
The database should be created before running the tests.
|
|
|
|
The standard Python unittest is used to run the tests. But if unittest2 is
|
|
found it will be used instead, with the result of having more informations
|
|
about skipped tests.
|
|
|
|
|
|
Building the documentation
|
|
==========================
|
|
|
|
In order to build the documentation included in the distribution, use
|
|
|
|
make env
|
|
make docs
|
|
|
|
The first command will install all the dependencies (Sphinx, Docutils) in
|
|
an 'env' directory in the project tree. The second command will build both
|
|
the html format (in the 'doc/html' directory) and in plain text
|
|
(doc/psycopg2.txt)
|
|
|
|
|
|
Using setuptools and EasyInstall
|
|
================================
|
|
|
|
If setuptools are installed on your system you can easily create an egg for
|
|
psycopg and install it. Download the source distribution (if you're reading
|
|
this file you probably already have) and then edit setup.cfg to your taste
|
|
and build from the source distribution top-level directory using:
|
|
|
|
easy_install .
|
|
|
|
|
|
Compiling under Windows with mingw32
|
|
====================================
|
|
|
|
You can compile psycopg under Windows platform with mingw32
|
|
(http://www.mingw.org/) compiler. MinGW is also shipped with IDEs such as
|
|
Dev-C++ (http://www.bloodshed.net/devcpp.html) and Code::Blocks
|
|
(http://www.codeblocks.org). gcc binaries should be in your PATH.
|
|
|
|
You need a PostgreSQL with include and libary files installed. At least v8.0
|
|
is required.
|
|
|
|
First you need to create a libpython2X.a as described in
|
|
http://starship.python.net/crew/kernr/mingw32/Notes.html. Then run:
|
|
|
|
python setup.py build_ext --compiler=mingw32 install
|
|
|