12k
All articles

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

Способы устранения ошибки pg_config executable not found при установке psycopg2: настройка PostgreSQL, исправление PATH и установка библиотек разработки.

OpenReplay Team
OpenReplay Team
Как исправить ошибку '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` вместо `psycopg2`?

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

Нужно ли мне устанавливать PostgreSQL, если я хочу использовать только `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

We use cookies to improve your experience. By using our site, you accept cookies.