Не могу установить psycopg2 с pip в virtualenv на Mac OS X 10.7 - PullRequest
24 голосов
/ 13 марта 2012

Я следую руководству Heroku по развертыванию приложения Django: http://devcenter.heroku.com/articles/django#prerequisites.

Пока все не работает, все работает нормально:

$ pip install Django psycopg2

Я могу установить Djangoсамо по себе, но проблема с 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.

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

Ответы [ 8 ]

48 голосов
/ 16 февраля 2017

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

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.

25 голосов
/ 29 января 2015

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

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

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

ВНИМАНИЕ :

9.3 обозначает версию и будет изменяться со временем.

6 голосов
/ 25 мая 2015

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

brew install postgres

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

ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install psycopg2
5 голосов
/ 13 марта 2012

См. официальное руководство по установке из psycopg:

Установка в Mac OS X В качестве первого варианта, пожалуйста, рассмотрите возможность использования упакованная версия Psycopg от Fink или MacPorts.

Если вы все еще хотите собрать Psycopg из исходного кода, взгляните на эти статьи.

0 голосов
/ 11 июня 2019

Обходной путь должен быть в пакете 'psycopg2-binary'

0 голосов
/ 13 июля 2017

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

0 голосов
/ 17 декабря 2012

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

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

Пришлось установить «инструменты командной строки» для Xcode, а затем я смог установить pip с помощью virtualenv, точно так же, как в учебнике heroku.

0 голосов
/ 13 марта 2012

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

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

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

sudo find / -name pg_config

, чтобы найти, где он находится, и затем добавить это местоположение к вашему пути, запустить 'pg_config' и увидеть, как оно выполнено, и, наконец, повторно запустить pip.

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

...