Pg_config исполняемый файл не найден

У меня возникли проблемы с установкой psycopg2. Я получаю следующую ошибку при попытке pip install psycopg2:

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 /tmp/pip-build/psycopg2

Но проблема pg_config действительно в моем PATH; он работает без проблем:

$ which pg_config
/usr/pgsql-9.1/bin/pg_config

Я попытался добавить путь pg_config к файлу setup.cfg и создать его, используя исходные файлы, загруженные с их сайта (http://initd.org/psycopg/), и я получаю следующее сообщение об ошибке!

Error: Unable to find 'pg_config' file in '/usr/pgsql-9.1/bin/'

Но это на самом деле ТАМ!!!

Я ошибаюсь этими ошибками. Может ли кто-нибудь помочь?

Кстати, я sudo все команды. Также я нахожусь на RHEL 5.5.

Ответ 1

pg_config находится в postgresql-devel (libpq-dev в Debian/Ubuntu, libpq-devel на Cygwin/Babun.)

Ответ 2

В Mac OS X я решил это с помощью менеджера пакетов homebrew

brew install postgresql

Ответ 4

Также на OSX. Установил Postgress.app из http://postgresapp.com/, но имел ту же проблему.

Я нашел pg_config в этом приложении и добавил dir в $PATH.

Это было в /Applications/Postgres.app/Contents/Versions/latest/bin. Итак, это сработало: export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH".

Ответ 5

В альпийском языке библиотека, содержащая pg_config, postgresql-dev. Чтобы установить, запустите:

apk add postgresql-dev

Ответ 6

apt-get build-dep python-psycopg2

Ответ 7

Вы должны добавить требования Python, используемые в Postgres на Ubuntu. Бежать:

sudo apt-get install libpq-dev python-dev

Ответ 8

sudo apt-get install libpq-dev работает для меня на Ubuntu 15.4

Ответ 9

Подводя итог, я столкнулся с такой же проблемой. После прочтения большого количества сообщений stackoverflow и онлайн-блогов окончательное решение, которое сработало для меня, следующее:

1) PostgreSQL (разработка или любая стабильная версия) должна быть установлена ​​до установки psycopg2.

2) Файл pg_config (этот файл обычно находится в папке bin в установочной папке PostgreSQL) Перед установкой psycopg2 необходимо было явно настроить PATH. В моем случае установка PATH для PostgreSQL:

/opt/local/lib/postgresql91/

поэтому, чтобы явно установить PATH файла pg_config, я ввел следующую команду в мой терминал:

PATH=$PATH:/opt/local/lib/postgresql91/bin/

Эта команда гарантирует, что при попытке установить psycopg2 на этот раз PATH автоматически найдет pg_config.

Я также опубликовал полную ошибку с трассировкой и ее решением на blog, которую вы можете захотеть сослаться. Его для Mac OS X, но проблема PATH pg_config является общей и применима к Linux.

Ответ 10

Это то, что сработало для меня в CentOS, сначала установите:

sudo yum install postgresql postgresql-devel python-devel

На Ubuntu просто используйте equivident apt-get пакеты.

sudo apt-get install postgresql postgresql-dev python-dev

И теперь включите путь к вашему двоичному каталогу postgresql, с которым вы устанавливаете pip, это должно работать для Linux на основе Debain или RHEL:

sudo PATH=$PATH:/usr/pgsql-9.3/bin/ pip install psycopg2

Обязательно укажите правильный путь. Thats all:)

Ответ 11

В Linux Mint sudo apt-get install libpq-dev работал для меня.

Ответ 12

UPDATE/etc/yum.repos.d/CentOS-Base.repo, [base] и [updates] разделы
ADD exclude = postgresql *

curl -O http://yum.postgresql.org/9.1/redhat/rhel-6-i386/pgdg-centos91-9.1-4.noarch.rpmr  
rpm -ivh pgdg-centos91-9.1-4.noarch.rpm

yum install postgresql  
yum install postgresql-devel

PATH=$PATH:/usr/pgsql-9.1/bin/

pip install psycopg2

Ответ 13

Для тех, кто работает с ОС X, это решение сработало для меня:

1) Установите Postgres.app:

http://www.postgresql.org/download/macosx/

2) Затем откройте терминал и запустите эту команду, заменив там, где он говорит {{version}}, с номером версии Postgres:

export PATH = $PATH:/Applications/Postgres.app/Contents/Versions/{{version}}/bin

например.

export PATH = $PATH:/Applications/Postgres.app/Contents/Versions/9.4/bin

Ответ 14

Попробуйте добавить его в PATH:

PATH=$PATH:/usr/pgsql-9.1/bin/ ./pip install psycopg2

Ответ 15

Решение Ali работало для меня, но мне не удалось найти папку с папкой bin. Быстрый способ найти путь в Mac OS X - открыть psql (там есть быстрая ссылка в верхней строке меню). Это откроет отдельное окно терминала, а во второй строке путь к вашей установке Postgres будет выглядеть следующим образом:

My-MacBook-Pro:~ Me$ /Applications/Postgres93.app/Contents/MacOS/bin/psql ; exit;

Ваш файл pg_config находится в папке bin. Поэтому перед установкой psycopg2 задайте путь к файлу pg_config:

PATH=$PATH:/Applications/Postgres93.app/Contents/MacOS/bin/

или для более новой версии:

PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.3/bin

Затем установите psycopg2.

Ответ 16

Вам необходимо обновить свой пипс до установки psycopg2. Используйте эту команду

pip install --upgrade pip

Ответ 17

Просто решил проблему в Cent OS 7:

export PATH=$PATH:/usr/pgsql-9.5/bin

убедитесь, что ваша версия PostgreSql соответствует правильной версии выше.

Ответ 19

В Mac OS X и если вы используете приложение Postgres (http://postgresapp.com/):

export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin

Нет необходимости указывать версию Postgres в этой команде. Это всегда будет указывать на последние.

и делать

pip install psycopg2

PS: если изменения не отражаются, вам может потребоваться перезапустить терминал/командную строку

Источник

Ответ 20

sudo yum install postgresql-devel (centos6X)

pip install psycopg2 == 2.5.2

Ответ 21

Здесь для полноты OS X: если вы устанавливаете PostgreSQL из MacPorts, pg_config будет находиться в /opt/local/lib/postgresql94/bin/pg_config.

Когда вы установили MacPorts, он уже добавил /opt/local/bin в ваш PATH.

Итак, это устранит проблему: $ sudo ln -s /opt/local/lib/postgresql94/bin/pg_config /opt/local/bin/pg_config

Теперь pip install psycopg2 сможет запускать pg_config без проблем.

Ответ 22

В MacOS простейшая попытка - создать символическую ссылку на правильный двоичный файл, который находится внутри пакета Postgres.

sudo ln -s /Applications/Postgres.app/Contents/Versions/latest/bin/pg_config /usr/local/bin/pg_config

Это довольно безопасно, и все приложения смогут использовать его в масштабе всей системы, если потребуется.

Ответ 23

Я собираюсь оставить это здесь для следующей несчастной души, которая не может обойти эту проблему, несмотря на все предоставленные решения. Просто используйте sudo pip3 install psycopg2-binary

Ответ 24

Установка python-psycopg2 решила это для меня на Arch Linux:

pacman -S python-psycopg2

Ответ 25

для CentOS/RedHat убедитесь, что /etc/alternatives/pgsql-pg_config является неизолированной символической ссылкой

Ответ 26

Я уверен, что вы испытали ту же "проблему", что и я, поэтому я предлагаю вам очень простое решение...

В вашем случае фактический путь, который нужно добавить в $PATH (или в качестве параметра команды), следующий:

/usr/pgsql-9.1/bin/pg_config

не

/usr/pgsql-9.1/bin

например. если вы запустите python setup.py script после этого, вы будете запускать его следующим образом:

python setup.py build_ext --pg-config /usr/pgsql-9.1/bin/pg_config build

Возможно, слишком поздно, но все же самое простое решение.

LATER EDIT:

В рамках дальнейшего теста я выяснил, что если вы сначала добавили путь к pg_config в форме

/usr/pgsql-9.1/bin

(без/pg_config после..... /bin ) и запустите команду установки пакета, она будет работать.

Однако, если вы затем решите следовать указаниям для запуска python setup.py, вам нужно будет указать путь с /pg _config после...../bin, т.е.

python setup.py build_ext --pg-config /usr/pgsql-9.1/bin/pg_config build

Ответ 27

Вот так мне удалось установить psycopg2

$ wget http://initd.org/psycopg/tarballs/PSYCOPG-2-5/psycopg2-2.5.3.tar.gz
$ tar -xzf psycopg2-2.5.3.tar.gz
$ cd psycopg2-2.5.3
$ pip install .

Ответ 28

В Gentoo Вы должны выполнить следующие

# Install postgresql client libraries
sudo emerge postgresql-base

Ответ 29

Для тех, кто сталкивался с этой проблемой, работая над приложением Django и развертывая его в AWS, метод, описанный в этом руководстве, работал для меня: https://realpython.com/deploying-a-django-app-and-postgresql-to-aws-elastic-beanstalk/

Вот объяснение автора, когда вы получаете следующую ошибку:

Error: pg_config executable not found.

Проблема в том, что мы попытались установить psycopy2 (привязки Postgres Python), но нам также необходимо установить клиентские драйверы Postgres. Так как они не установлены по умолчанию, мы должны установить их в первую очередь.

eb будет читать пользовательские файлы .config из папки с именем ".ebextensions" на корневом уровне вашего проекта. Эти файлы .config позволяют вам устанавливать пакеты, запускать произвольные команды и/или устанавливать переменные окружения. Файлы в каталоге ".ebextensions" должны соответствовать синтаксису JSON или YAML и выполняться в алфавитном порядке.

Первое, что нужно сделать, это установить некоторые пакеты, чтобы наша команда pip install была выполнена успешно. Для этого давайте создадим файл с именем .ebextensions/01_packages.config:

packages:
  yum:
    git: []
    postgresql93-devel: []
    libjpeg-turbo-devel: []

Экземпляры EC2 работают под управлением Amazon Linux, который представляет собой разновидность Redhat, поэтому мы можем использовать yum для установки необходимых пакетов. Сейчас мы только собираемся установить три пакета - git, клиент Postgres и libjpeg для Pillow.