Установка psycopg2 в virtualenv, когда PostgreSQL не установлен в системе разработки - PullRequest
61 голосов
/ 12 апреля 2011

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

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

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

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

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

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

Ошибка от 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

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

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

Ответы [ 9 ]

68 голосов
/ 07 августа 2012
apt-get install libpq-dev

помог мне в сжатии Debian

47 голосов
/ 13 апреля 2011

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

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

export PATH=/path/to/compiled/postgresql/bin:"$PATH"
pip install psycopg2
11 голосов
/ 20 августа 2012
apt-get install libpq-dev

также помог мне в сжатии Debian. После этого сделайте pip установить psycopg2. Я столкнулся с проблемой pg_config not found, когда я настраивал свою среду на heroku, теперь она работает нормально.

6 голосов
/ 18 ноября 2014

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

sudo apt-get install python-dev 

или

sudo apt-get install python3-dev

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

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

pip install psycopg2
4 голосов
/ 12 мая 2011

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

2 голосов
/ 13 мая 2019
brew install postgresql

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

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

pip3 install psycopg2
1 голос
/ 18 июля 2016

Я решил это в 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
1 голос
/ 17 мая 2011

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

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

После просмотра некоторой документации, я думаю, что если бы я добавил путь homebrew postgresql к системному пути, я мог бы использовать 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. Я обновлю ее, когда у меня будет возможность опробовать их. До тех пор, я надеюсь, это поможет.

0 голосов
/ 21 августа 2015

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

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

Выход Коллекционирование 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

...