ERROR: Command errored out with exit status 1:
command: /Users/~/Programming/LazyBlacksmith/env/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/4t/3kc42sfx7yldm7kqb56xzlc40000gp/T/pip-install-xw9nlhx2/psycopg2_d7254deed142410596f1f93fae0bcd82/setup.py'"'"'; __file__='"'"'/private/var/folders/4t/3kc42sfx7yldm7kqb56xzlc40000gp/T/pip-install-xw9nlhx2/psycopg2_d7254deed142410596f1f93fae0bcd82/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'rn'"'"', '"'"'n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /private/var/folders/4t/3kc42sfx7yldm7kqb56xzlc40000gp/T/pip-pip-egg-info-n8em2hf8
cwd: /private/var/folders/4t/3kc42sfx7yldm7kqb56xzlc40000gp/T/pip-install-xw9nlhx2/psycopg2_d7254deed142410596f1f93fae0bcd82/
Complete output (23 lines):
running egg_info
creating /private/var/folders/4t/3kc42sfx7yldm7kqb56xzlc40000gp/T/pip-pip-egg-info-n8em2hf8/psycopg2.egg-info
writing /private/var/folders/4t/3kc42sfx7yldm7kqb56xzlc40000gp/T/pip-pip-egg-info-n8em2hf8/psycopg2.egg-info/PKG-INFO
writing dependency_links to /private/var/folders/4t/3kc42sfx7yldm7kqb56xzlc40000gp/T/pip-pip-egg-info-n8em2hf8/psycopg2.egg-info/dependency_links.txt
writing top-level names to /private/var/folders/4t/3kc42sfx7yldm7kqb56xzlc40000gp/T/pip-pip-egg-info-n8em2hf8/psycopg2.egg-info/top_level.txt
writing manifest file '/private/var/folders/4t/3kc42sfx7yldm7kqb56xzlc40000gp/T/pip-pip-egg-info-n8em2hf8/psycopg2.egg-info/SOURCES.txt'
Error: pg_config executable not found.
pg_config is required to build psycopg2 from source. Please add the directory
containing pg_config to the $PATH or specify the full executable path with the
option:
python setup.py build_ext --pg-config /path/to/pg_config build ...
or with the pg_config option in 'setup.cfg'.
If you prefer to avoid building psycopg2 from source, please install the PyPI
'psycopg2-binary' package instead.
For further information please check the 'doc/src/install.rst' file (also at
<https://www.psycopg.org/docs/install.html>).
----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/fd/ae/98cb7a0cbb1d748ee547b058b14604bd0e9bf285a8e0cc5d148f8a8a952e/psycopg2-2.8.6.tar.gz#sha256=fb23f6c71107c37fd667cb4ea363ddeb936b348bbd6449278eb92c189699f543 (from https://pypi.org/simple/psycopg2/) (requires-python:>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
ERROR: Could not find a version that satisfies the requirement psycopg2==2.8.6
ERROR: No matching distribution found for psycopg2==2.8.6
Несколько дней пытаюсь решить проблему — не получается.
Логи ошибки:
Error: pg_config executable not found.
Collecting psycopg2==2.6.1
Using cached psycopg2-2.6.1.tar.gz
Complete output from command python setup.py egg_info:
running egg_info
creating pip-egg-info/psycopg2.egg-info
writing pip-egg-info/psycopg2.egg-info/PKG-INFO
writing dependency_links to pip-egg-info/psycopg2.egg-info/dependency_links.txt
writing top-level names to pip-egg-info/psycopg2.egg-info/top_level.txt
writing manifest file 'pip-egg-info/psycopg2.egg-info/SOURCES.txt'
warning: manifest_maker: standard file '-c' not found
Error: pg_config executable not found.
Please add the directory containing pg_config to the PATH
or specify the full executable path with the option:
python setup.py build_ext --pg-config /path/to/pg_config build ...
or with the pg_config option in 'setup.cfg'.
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/s5/gszz_sn97_q00sn6hnp0lmxh0000gn/T/pycharm-packaging/psycopg2/
UPD: решил с помощью команды
PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.5/bin/ sudo pip install psycopg2
-
Вопрос заданболее трёх лет назад
-
27339 просмотров
Please add the directory containing pg_config to the PATH
or specify the full executable path with the option:python setup.py build_ext —pg-config /path/to/pg_config build …
Вроде прямым текстом говорят — корректный путь к постгресу в PATH надо добавить. Либо указанным способом, либо
sudo PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.3/bin
А потом
pip install psycopg2
Пригласить эксперта
Если 3-ий питон, тоsudo apt-get install python3-dev
Потом через виртуальное окружение pip install psycopg2
Не заметил что Mac 
Смотрите здесь
initd.org/psycopg/docs/install.html
Предлагают через Fink ставить.
Помню что похожая проблема была, но не помню как решил, давно это было и у меня на маке уже установлен драйвер)
Чаще всего постгрес локально лучше поставить так что
sudo apt-get install postgresql-server-dev-9.3 python3-dev
Если нет, то нужно поставить
libpq-dev
Description: header files for libpq5 (PostgreSQL library)
Header files and static library for compiling C programs to link with the libpq library in
order to communicate with a PostgreSQL database backend.
sudo apt-get install libpq-dev python3-dev
Windows.
Была та-же беда.
Удалил всю папку venv и заново всё поставил. Только начал с psycopg2 затем алхимия и остальные пакеты проекта
-
Показать ещё
Загружается…
09 февр. 2023, в 17:37
5000 руб./за проект
09 февр. 2023, в 17:35
50000 руб./за проект
09 февр. 2023, в 17:25
3800 руб./за проект
Минуточку внимания
Psycopg is a PostgreSQL adapter for the Python programming language. It is a
wrapper for the libpq, the official PostgreSQL client library.
Quick Install¶
For most operating systems, the quickest way to install Psycopg is using the
wheel package available on PyPI:
$ pip install psycopg2-binary
This will install a pre-compiled binary version of the module which does not
require the build or runtime prerequisites described below. Make sure to use
an up-to-date version of pip (you can upgrade it using something
like pip install -U pip).
You may then import the psycopg2 package, as usual:
import psycopg2 # Connect to your postgres DB conn = psycopg2.connect("dbname=test user=postgres") # Open a cursor to perform database operations cur = conn.cursor() # Execute a query cur.execute("SELECT * FROM my_data") # Retrieve query results records = cur.fetchall()
psycopg vs psycopg-binary¶
The psycopg2-binary package is meant for beginners to start playing
with Python and PostgreSQL without the need to meet the build
requirements.
If you are the maintainer of a published package depending on psycopg2
you shouldn’t use psycopg2-binary as a module dependency. For
production use you are advised to use the source distribution.
The binary packages come with their own versions of a few C libraries,
among which libpq and libssl, which will be used regardless of other
libraries available on the client: upgrading the system libraries will not
upgrade the libraries used by psycopg2. Please build psycopg2 from
source if you want to maintain binary upgradeability.
Warning
The psycopg2 wheel package comes packaged, among the others, with its
own libssl binary. This may create conflicts with other extension
modules binding with libssl as well, for instance with the Python
ssl module: in some cases, under concurrency, the interaction between
the two libraries may result in a segfault. In case of doubts you are
advised to use a package built from source.
Change in binary packages between Psycopg 2.7 and 2.8¶
In version 2.7.x, pip install psycopg2 would have tried to install
automatically the binary package of Psycopg. Because of concurrency problems
binary packages have displayed, psycopg2-binary has become a separate
package, and from 2.8 it has become the only way to install the binary
package.
If you are using Psycopg 2.7 and you want to disable the use of wheel binary
packages, relying on the system libraries available on your client, you
can use the pip --no-binary option, e.g.:
$ pip install --no-binary :all: psycopg2
which can be specified in your requirements.txt files too, e.g. use:
psycopg2>=2.7,<2.8 --no-binary psycopg2
to use the last bugfix release of the psycopg2 2.7 package, specifying to
always compile it from source. Of course in this case you will have to meet
the build prerequisites.
Prerequisites¶
The current psycopg2 implementation supports:
-
Python versions from 3.6 to 3.11
-
PostgreSQL server versions from 7.4 to 15
-
PostgreSQL client library version from 9.1
Note
Not all the psycopg2 versions support all the supported Python versions.
Please see the release notes to verify when the support for
a new Python version was added and when the support for an old Python
version was removed.
Build prerequisites¶
The build prerequisites are to be met in order to install Psycopg from source
code, from a source distribution package, GitHub or from PyPI.
Psycopg is a C wrapper around the libpq PostgreSQL client library. To install
it from sources you will need:
-
A C compiler.
-
The Python header files. They are usually installed in a package such as
python-dev or python3-dev. A message such as error: Python.h: No
such file or directory is an indication that the Python headers are
missing. -
The libpq header files. They are usually installed in a package such as
libpq-dev. If you get an error: libpq-fe.h: No such file or directory
you are missing them. -
The pg_config program: it is usually installed by the
libpq-dev package but sometimes it is not in aPATHdirectory.
Having it in thePATHgreatly streamlines the installation, so try
runningpg_config --version: if it returns an error or an unexpected
version number then locate the directory containing the pg_config
shipped with the right libpq version (usually
/usr/lib/postgresql/X.Y/bin/) and add it to thePATH:$ export PATH=/usr/lib/postgresql/X.Y/bin/:$PATH
You only need pg_config to compile
psycopg2, not for its
regular usage.
Once everything is in place it’s just a matter of running the standard:
or, from the directory containing the source code:
$ python setup.py build $ python setup.py install
Runtime requirements¶
Unless you compile psycopg2 as a static library, or you install it from a
self-contained wheel package, it will need the libpq library at runtime
(usually distributed in a libpq.so or libpq.dll file). psycopg2
relies on the host OS to find the library if the library is installed in a
standard location there is usually no problem; if the library is in a
non-standard location you will have to tell Psycopg how to find it,
which is OS-dependent (for instance setting a suitable
LD_LIBRARY_PATH on Linux).
Note
The libpq header files used to compile psycopg2 should match the
version of the library linked at runtime. If you get errors about missing
or mismatching libraries when importing psycopg2 check (e.g. using
ldd) if the module psycopg2/_psycopg.so is linked to the
right libpq.so.
Note
Whatever version of libpq psycopg2 is compiled with, it will be
possible to connect to PostgreSQL servers of any supported version: just
install the most recent libpq version or the most practical, without
trying to match it to the version of the PostgreSQL server you will have
to connect to.
Non-standard builds¶
If you have less standard requirements such as:
-
creating a debug build,
-
using pg_config not in the
PATH,
then take a look at the setup.cfg file.
Some of the options available in setup.cfg are also available as command
line arguments of the build_ext sub-command. For instance you can specify
an alternate pg_config location using:
$ python setup.py build_ext --pg-config /path/to/pg_config build
Use python setup.py build_ext --help to get a list of the options
supported.
Creating a debug build¶
In case of problems, Psycopg can be configured to emit detailed debug
messages, which can be very useful for diagnostics and to report a bug. In
order to create a debug package:
-
Download and unpack the Psycopg source package (the
.tar.gz
package). -
Edit the
setup.cfgfile adding thePSYCOPG_DEBUGflag to the
defineoption. -
Compile and install the package.
-
Set the
PSYCOPG_DEBUGenvironment variable:
-
Run your program (making sure that the
psycopg2package imported is the
one you just compiled and not e.g. the system one): you will have a copious
stream of informations printed on stderr.
Non-standard Python Implementation¶
The psycopg2 package is the current mature implementation of the adapter: it
is a C extension and as such it is only compatible with CPython. If you want
to use Psycopg on a different Python implementation (PyPy, Jython, IronPython)
there is a couple of alternative:
-
a Ctypes port, but it is not as mature as the C implementation yet
and it is not as feature-complete; -
a CFFI port which is currently more used and reported more efficient on
PyPy, but please be careful of its version numbers because they are not
aligned to the official psycopg2 ones and some features may differ.
Running the test suite¶
Once psycopg2 is installed you can run the test suite to verify it is
working correctly. From the source directory, you can run:
$ python -c "import tests; tests.unittest.main(defaultTest='tests.test_suite')" --verbose
The tests run against a database called psycopg2_test on UNIX socket and
the 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 already exist before running the tests.
If you still have problems¶
Try the following. In order:
-
Read again the Build prerequisites.
-
Read the FAQ.
-
Google for
psycopg2your error message. Especially useful the week
after the release of a new OS X version. -
Write to the Mailing List.
-
If you think that you have discovered a bug, test failure or missing feature
please raise a ticket in the bug tracker. -
Complain on your blog or on Twitter that
psycopg2is the worst package
ever and about the quality time you have wasted figuring out the correct
ARCHFLAGS. Especially useful from the Starbucks near you.
