2012-03-13 2 views
19

Я следую инструкциям Heroku по развертыванию приложения Django: http://devcenter.heroku.com/articles/django#prerequisites.Невозможно установить psycopg2 с помощью pip в virtualenv на Mac OS X 10.7

Все работает отлично, пока я не в этой части:

$ pip install Django psycopg2 

Я могу установить Django сам по себе, но probelm это с psycopg2.

Я получаю эту ошибку:

ld: library not found for -lpq 

collect2: ld returned 1 exit status 

ld: library not found for -lpq 

collect2: ld returned 1 exit status 

lipo: can't open input file: /var/folders/_4/p6l0y0t51hd4xbq7llbyshmw0000gn/T//cc0L10mI.out (No such file or directory) 

error: command 'gcc-4.2' failed with exit status 1 

Я установил PostgreSQL 9.1 на моей машине.

Кроме того, на выходе, есть куча линий, как это:

gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -isysroot /Developer/SDKs/MacOSX10.6.sdk -arch i386 -arch x86_64 -g -O2 -DNDEBUG -g -O3 -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION="2.4.4 (dt dec pq3 ext)" -DPG_VERSION_HEX=0x090004 -DPSYCOPG_EXTENSIONS=1 -DPSYCOPG_NEW_BOOLEAN=1 -DHAVE_PQFREEMEM=1 -I/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -I. -I/usr/include -I/usr/include/postgresql/server -c psycopg/typecast.c -o build/temp.macosx-10.6-intel-2.7/psycopg/typecast.o 

Я не совсем уверен, что это значит, но я заметил, что у него есть «MacOSX-10,6» в нем так Мне интересно, может ли это быть проблемой? Я на 10.7.

Заранее за вашу помощь.

ответ

4

См official installation guide из Psycopg:

Installing on Mac OS X As a first option, please consider using a packaged version of Psycopg from Fink or MacPorts.

If you still want to build Psycopg from source, take a look at these articles.

+0

Хорошо, я только что установил psycopg2, используя macports в virtualenv. Я предполагаю, что это делает то же самое, что и установка pip в учебнике? Как и в, я бы просто заменил этот шаг? Причина, о которой я прошу, заключается в том, что приложение все еще терпит неудачу, когда я запускаю его. Когда я печатаю журналы Heroku, это одна из строк, которые я получаю: 'raise ImproperlyConfigured (« Ошибка загрузки модуля psycopg2:% s »% e)' – WarAndPiece

+0

Использование MacPorts для установки не будет работать в среде virtualenv. Чтобы ваше приложение работало, вы должны проверить эти статьи о создании из источника :) –

+0

Хорошо, я выполнил инструкции в одной из этих статей: http://blog.timc3.com/2010/08/20/psycopg2-os -x-_pqbackendpid /, и я получил psycopg2 для установки на моей машине. Тем не менее, я все еще получаю ту же ошибку в среде virtualenv. Я не слишком уверен, как я буду строить из источника в virtualenv. – WarAndPiece

0

Сосредоточение на этой линии: LD: библиотека не найдена для -lpq

psycopg2, как и большинство третьих сторон Postgres библиотек, хочет «pg_config» доступны на вашем пути. Я угадывание это ваша проблема.

Введите «pg_config» в командной строке. Надеюсь, вы видите, что он не найден. Если нет, то сделать:

Судо найти/-name pg_config

найти, где это в, а затем добавить это место в свой путь, запустите «pg_config» и увидеть его успеха, и, наконец, снова запустить pip.

команда поиска выполняет поиск в корневом каталоге; это займет несколько минут.

+0

эй, спасибо за ответ. однако, когда я набираю 'pg_config', он найден и проблем нет. – WarAndPiece

0

Следующий пост помог мне заставить его работать:

https://stackoverflow.com/a/10326004/1361851

Если бы установить "инструменты командной строки" для Xcode, а затем я был в состоянии to pip install with virtualenv так же, как и учебник heroku.

24

Сначала загрузите Postgres.app.

Затем, перед запуском pip install psycopg2, поместите исполняемый файл на вашем пути:

export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.3/bin 

УВЕДОМЛЕНИЕ:

9.3 стенды для версии и будет отличаться в течение долгого времени.

+0

Спасибо, я нашел этот ответ наиболее полезным, так как он не требует MacPorts или каких-либо других инструментов. – goetz

+0

Это не работает для меня. – Konrad

5

Установка postgres с brew:

brew install postgres 

Затем в вашем virtualenv установить psycopg2 с этой командой:

ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install psycopg2 
7

Просто хотел бы поделиться. Следующий код работал для меня:

env LDFLAGS='-L/usr/local/lib -L/usr/local/opt/openssl/lib 
-L/usr/local/opt/readline/lib' pip install psycopg2==2.5.2 

Я использую macOS Sierra и psql 9.6.1.

У меня есть путь к lib от команды pg_config.

+0

Это был ваш первый ответ SO, и он отлично работает. Спасибо, что нашли время, чтобы поместить его сюда. Это решение работает, чтобы установить psycopg2 в 'virtualenv' с postgres и зависимостями, установленными с' brew'. –

0

Я пробовал все вышеперечисленные решения, но единственное, что разрешило проблему, - это просто обновить утилиты Xcode CLI через официальный App Store.

Смежные вопросы