Back

Как исправить ошибку 'pg_config executable not found' при установке psycopg2

Как исправить ошибку 'pg_config executable not found' при установке psycopg2

Если вы пытались установить пакет Python psycopg2 для подключения к базам данных PostgreSQL, вы могли столкнуться с досадной ошибкой pg_config executable not found. Это руководство объясняет причины этой ошибки и предоставляет четкие шаги по ее устранению на различных операционных системах.

Ключевые выводы

  • Ошибка pg_config executable not found возникает при установке пакетов Python, таких как psycopg2, которые требуют PostgreSQL
  • Убедитесь, что PostgreSQL установлен и pg_config находится в системном PATH
  • Установите библиотеки и заголовки разработки PostgreSQL для вашей операционной системы
  • Рассмотрите возможность использования psycopg2-binary для разработки/тестирования, чтобы избежать сборки из исходного кода

Что такое ошибка ‘pg_config executable not found’?

Инструмент pg_config предоставляет информацию об установленной версии PostgreSQL. Многие пакеты, такие как psycopg2, полагаются на pg_config во время установки для поиска необходимых файлов и библиотек PostgreSQL. Если pg_config не может быть найден, установка завершается с ошибкой вида:

Error: pg_config executable not found.

Распространенные причины ошибки ‘pg_config executable not found’

Есть несколько основных причин, по которым вы можете увидеть эту ошибку:

  1. PostgreSQL не установлен
  2. Исполняемый файл pg_config отсутствует в системном PATH
  3. Отсутствуют необходимые библиотеки и заголовки разработки PostgreSQL

Давайте рассмотрим, как решить каждую из этих проблем.

Как исправить ошибку ‘pg_config executable not found’

1. Установите PostgreSQL

Сначала убедитесь, что PostgreSQL установлен в вашей системе. Вы можете загрузить соответствующий установщик для вашей операционной системы с официального сайта PostgreSQL.

2. Найдите pg_config и добавьте его в PATH

Исполняемый файл pg_config включен в PostgreSQL, но может отсутствовать в системном PATH. Найдите расположение pg_config и добавьте его каталог в PATH:

Linux

Распространенные местоположения:

  • /usr/pgsql-<version>/bin/pg_config
  • /usr/local/pgsql/bin/pg_config

Добавление в PATH:

export PATH=$PATH:/путь/к/каталогу/pg_config

macOS

Распространенное местоположение (Postgres.app):

  • /Applications/Postgres.app/Contents/Versions/latest/bin/pg_config

Добавление в PATH:

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

Windows

Распространенное местоположение:

  • C:\Program Files\PostgreSQL\<version>\bin\pg_config.exe

Добавление в PATH:

setx PATH "%PATH%;C:\путь\к\каталогу\pg_config"

3. Установите библиотеки разработки PostgreSQL

Чтобы скомпилировать psycopg2, вам нужны библиотеки и заголовки разработки PostgreSQL. Установите их с помощью менеджера пакетов вашей системы:

Linux

  • Ubuntu/Debian: sudo apt install libpq-dev
  • CentOS/RHEL: sudo yum install postgresql-devel

macOS

Установите с помощью Homebrew:

brew install postgresql

Windows

Библиотеки включены в установщик PostgreSQL с официального сайта.

Установите psycopg2

С установленным PostgreSQL и pg_config в PATH, вы теперь можете установить psycopg2:

pip install psycopg2

Если вы предпочитаете избежать сборки из исходного кода, вы можете установить предварительно собранный пакет psycopg2-binary:

pip install psycopg2-binary

Однако, обратите внимание, что psycopg2-binary рекомендуется только для разработки и тестирования, но не для производства.

Часто задаваемые вопросы

Да, `psycopg2-binary` предоставляет предварительно собранные пакеты wheel, которые не требуют компиляции из исходного кода. Однако, команда `psycopg2` рекомендует использовать дистрибутив исходного кода для производственных сред.

Да, `psycopg2` - это адаптер PostgreSQL для Python. Он требует установки PostgreSQL для правильного функционирования, даже если ваше приложение Python подключается к удаленной базе данных PostgreSQL.

Заключение

Следуя описанным здесь шагам, вы сможете устранить ошибку pg_config executable not found и успешно установить psycopg2, чтобы начать использовать PostgreSQL в ваших проектах Python.

Listen to your bugs 🧘, with OpenReplay

See how users use your app and resolve issues fast.
Loved by thousands of developers