Как установить psycopg2 с "pip" на Python? - PullRequest
466 голосов
/ 24 марта 2011

Я использую virtualenv и мне нужно установить «psycopg2».

Я сделал следующее:

pip install http://pypi.python.org/packages/source/p/psycopg2/psycopg2-2.4.tar.gz#md5=24f4368e2cfdc1a2b03282ddda814160

И у меня естьследующие сообщения:

Downloading/unpacking http://pypi.python.org/packages/source/p/psycopg2/psycopg2
-2.4.tar.gz#md5=24f4368e2cfdc1a2b03282ddda814160
  Downloading psycopg2-2.4.tar.gz (607Kb): 607Kb downloaded
  Running setup.py egg_info for package from http://pypi.python.org/packages/sou
rce/p/psycopg2/psycopg2-2.4.tar.gz#md5=24f4368e2cfdc1a2b03282ddda814160
    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'.
    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 top-level names to pip-egg-info\psycopg2.egg-info\top_level.txt

writing dependency_links to pip-egg-info\psycopg2.egg-info\dependency_links.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
Storing complete log in C:\Documents and Settings\anlopes\Application Data\pip\p
ip.log

Мой вопрос, мне нужно сделать это только для того, чтобы заставить работать psycopg2?

python setup.py build_ext --pg-config /path/to/pg_config build ...

Ответы [ 28 ]

704 голосов
/ 27 марта 2011

Я нашел этот пост в поисках Linux-решения этой проблемы.

Этот пост от "goshawk" дал мне решение: запустите sudo apt-get install libpq-dev python-dev, если вы используете Ubuntu / Debian.

Обновление

Поскольку все больше людей сочли этот ответ полезным и опубликовали свои собственные решения, вот их список:

Debian / Ubuntu

Python 2

sudo apt install libpq-dev python-dev

Python 3

sudo apt install libpq-dev python3-dev

Дополнительный

Если ни один из вышеперечисленных не решил вашу проблему, попробуйте

sudo apt install build-essential

или

sudo apt install postgresql-server-dev-all
115 голосов
/ 31 октября 2012

В CentOS вам нужны пакеты postgres dev:

sudo yum install python-devel postgresql-devel

Это было решение по крайней мере для CentOS 6.

82 голосов
/ 22 декабря 2013

На Mac Mavericks с Postgres.app версии 9.3.2.0 RC2 Мне нужно было использовать следующий код после установки Postgres:

sudo PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.3/bin pip install psycopg2

75 голосов
/ 31 октября 2013

если вы на Mac, вы можете использовать домашний напиток

brew install postgresql

И все остальные варианты здесь: http://www.postgresql.org/download/macosx/

Удачи

61 голосов
/ 24 марта 2011

Я недавно настроил psycopg2 на машине с Windows.Самая простая установка - использование исполняемого файла Windows.Вы можете найти его в http://stickpeople.com/projects/python/win-psycopg/.

Чтобы установить собственный двоичный файл в виртуальной среде, используйте easy_install:

C:\virtualenv\Scripts\> activate.bat
(virtualenv) C:\virtualenv\Scripts\> easy_install psycopg2-2.5.win32-py2.7-pg9.2.4-release.exe
27 голосов
/ 03 октября 2012

Для Python 3 вы должны использовать sudo apt-get install libpq-dev python3-dev под Debian.

26 голосов
/ 20 ноября 2014

Это то, что у меня сработало (На RHEL, CentOS:

sudo yum install postgresql postgresql-devel python-devel

А теперь укажите путь к вашему бинарному каталогу postgresql при установке pip:

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

Убедитесь, что указали правильный путь. Вот и все :) 1007 *

ОБНОВЛЕНИЕ: Для Python 3, пожалуйста, установите python3-devel вместо python-devel

21 голосов
/ 02 апреля 2012

Если вы используете Mac OS, вам следует установить PostgreSQL из исходного кода. После завершения установки вам нужно добавить этот путь, используя:

export PATH=/local/pgsql/bin:$PATH

или вы можете добавить путь следующим образом:

export PATH=.../:usr/local/pgsql/bin

в вашем файле .profile или .zshrc.

Возможно, это зависит от операционной системы.

Вы можете следить за процессом установки с http://www.thegeekstuff.com/2009/04/linux-postgresql-install-and-configure-from-source/

16 голосов
/ 17 января 2015

Пока ответы слишком похожи на магические рецепты.Полученная ошибка говорит о том, что pip не может найти необходимую часть библиотеки запросов PostgreSQL.Возможно, это связано с тем, что он установлен в нестандартном для вашей ОС месте, поэтому в сообщении предлагается использовать параметр --pg-config.

Но более распространенной причиной является то, что у вас нетlibpq установлен вообще.Это обычно происходит на машинах, где у вас НЕ установлен сервер PostgreSQL, потому что вы хотите запускать только клиентские приложения, а не сам сервер.Каждая ОС / дистрибутив отличается, например, в Debian / Ubuntu вам нужно установить libpq-dev.Это позволяет вам компилировать и связывать код с библиотекой PostgreSQL Query.

В большинстве ответов также предлагается установить библиотеку Python dev.Быть осторожен.Если вы используете только установленный по умолчанию дистрибутив Python, это будет работать, но если у вас более новая версия, это может вызвать проблемы.Если вы собрали Python на этом компьютере, то у вас уже есть библиотеки dev, необходимые для компиляции библиотек C / C ++ для взаимодействия с Python.Если вы используете правильную версию pip, установленную в той же папке bin, что и двоичный файл python, то все готово.Нет необходимости устанавливать старую версию.

13 голосов
/ 06 сентября 2015

Вкл. Debian/Ubuntu:

Сначала установите и создайте зависимости пакета psycopg2:

# apt-get build-dep python-psycopg2

Затем в вашей виртуальной среде скомпилируйте и установите модуль psycopg2:

(env)$ pip install psycopg2
...