Возможно ли установить 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