Установка psycopg2 в virtualenv, когда PostgreSQL не установлен в системе разработки

Возможно ли установить psycopg2 в virtualenv, когда PostgreSQL не установлен в моей системе разработки MacBook Pro с OS X 10.6?

Когда я запускаю pip install psycopg2 из моего virtualenv, я получил ошибку, показанную ниже.

Я пытаюсь подключиться к устаревшей базе данных на сервере с помощью Django, и я бы предпочел не устанавливать PostgreSQL в мою систему разработки, если это возможно.

Почему бы не установить PostgreSQL?

У меня возникла ошибка при установке PostgreSQL с использованием homebrew. У меня есть Xcode4 и только Xcode4, установленный на моем MacBook Pro, и я думаю, что это связано с отсутствием gcc 4.0. Однако это проблема для другого вопроса StackOverflow.

Обновление 8:37 AM 12 апреля 2011 г.. Мне все же хотелось бы узнать, возможно ли это, не устанавливая PostgreSQL на моем MacBook Pro. Однако я выполнил brew update и принудительно переустановил ossp-uuid с brew install --force ossp-uuid и теперь работает brew install postgresql. Когда PostgreSQL был успешно установлен, я смог pip install psycopg2 из моего виртуального файла.

Ошибка pip install psycopg2

$ pip install psycopg2
Downloading/unpacking psycopg2
  Running setup.py egg_info for package 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'.
    Complete output from command python setup.py egg_info:
    running 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
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 /Users/matthew/.pip/pip.log

Предварительные исследования

Ниже приведены статьи, которые я прочитал в качестве предварительного исследования:

Ответ 1

psycopg зависит от команды pg_config, и если у вас ее нет, вы не можете установить psycopg.

Если вам не удается установить систему, почему бы вам не попробовать компилировать PostgreSQL и в том числе сгенерированные файлы bin в $PATH? Как:

export PATH=/path/to/compiled/postgresql/bin:"$PATH"
pip install psycopg2

Ответ 2

apt-get install libpq-dev

помог мне на debian squeeze

Ответ 3

apt-get install libpq-dev

помог мне и в debian squeeze. После этого сделайте pip install psycopg2. Я столкнулся с проблемой pg_config не найденной проблемы, когда я настраивал свою среду на heroku, теперь ее отлично работает.

Ответ 4

Вам нужно установить пакет python-dev, чтобы использовать расширения python, такие как psycopg2. Я не знаю, как устанавливать пакеты в Mac, но я запускаю следующие команды для установки пакета python на моем компьютере Ubuntu.

sudo apt-get install python-dev 

или

sudo apt-get install python3-dev

если вы используете Python3.x.

После завершения установки выполните следующую команду в своей виртуальной среде.

pip install psycopg2

Ответ 5

Вам не нужен полный PostgreSQL: вам нужны только клиентские библиотеки.

Ответ 6

Используя метод, описанный в обновлении от 12 апреля, я смог установить PostgreSQL (+1). Обратите внимание, что я изначально запускал Python 2.7.1 (32 бит) и homebrew бросил несколько ошибок и предупреждений относительно использования 32-битной версии Python. С тех пор я переключил 64-битную версию версии 2.7.1 и работает как чемпион.

Что касается pyscopg2, я смог установить его в свою виртуальную среду из источника, отредактировав setup.cfg. Я установил pg_config для исправления пути внутри homebrew Cellar (pg_config =/usr/local/Cellar/postgresql/9.0.4/bin/pg_config). После сохранения изменений я запустил установку python setup.py с нулевыми проблемами. Стоит отметить, что я сделал не, чтобы установить для python по умолчанию Mac 32 бит. Я использовал новый 64 бит от начала до конца.

После просмотра некоторых документов я думаю, что если бы я добавил путь postgresql homebrew к системному пути, я мог бы использовать pip для его установки.

Справка:
http://favosdream.blogspot.com/2009/09/make-psycopg2-and-readline-work-in-snow.html

Обновление 6-8-2011:
При переносе проекта, написанного на OS X на Windows 7, я выяснил, что мне также пришлось установить PostgreSQL на Windows. Это привело к созданию другого пользователя на моем стартовом экране и других вещах, которые мне просто не нравились. При выполнении некоторых копаний я нашел драйверы Windows для PostgreSQL здесь. С тех пор я удалил полный PostgreSQL и установил драйверы ODBC, которые до сих пор работают отлично.

Чтобы решить исходный вопрос, сделав немного больше копания, я думаю, что нашел здесь эквивалентный ODBC для OS X здесь. У меня не было возможности попробовать их, но концепция очень хорошо работает в Windows 7. Я обновлю это, когда у меня будет возможность попробовать их. До тех пор я надеюсь, что это поможет.

Ответ 7

Я решил это в MAC OSX, используя:

$ wget https://ftp.postgresql.org/pub/source/v9.5.3/postgresql-9.5.3.tar.bz2
$ tar xfv postgresql-9.5.3.tar.bz2
$ cd postgresql-9.5.3
$ ./configure
$ make
$ cd src/bin/pg_config
$ export PATH=`pwd`:"$PATH"
$ pip install psycopg2

Ответ 8

Поскольку мне никогда не приходилось устанавливать базу данных postgresql на этом сервере, я установил следующие библиотеки в версии Ubuntu 14_04 перед запуском pip install psycopg2 на том же сервере

apt-get install libpq-dev python-dev  а затем выполнил команду pip install psycopg2 в виртуальном env.

Выход  Сбор psycopg2 Использование кэшированного psycopg2-2.6.1.tar.gz Построение колес для собранных пакетов: psycopg2 Запуск setup.py bdist_wheel для psycopg2 Хранится в каталоге:/root/.cache/pip/wheels/e2/9a/5e/7b620848bbc7cfb9084aafea077be11618c2b5067bd532f329 Успешно построенный psycopg2 Установка собранных пакетов: psycopg2 Успешно установлен psycopg2-2.6.1

Ответ 9

brew install postgresql

export LDFLAGS="-L/usr/local/opt/openssl/lib"

export CPPFLAGS="-I/usr/local/opt/openssl/include"

pip3 install psycopg2