Подтвердить что ты не робот

Невозможно установить psycopg2 с помощью pip в virtualenv на Mac OS X 10.7

Я следую руководству 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.

Заранее благодарим за помощь.

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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.

Ответ 3

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

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

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

УВЕДОМЛЕНИЕ

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

Ответ 4

Установите postgres с помощью brew:

brew install postgres

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

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

Ответ 5

Обходной путь должен заключаться во вложении пакета "psycopg2-binary"

Ответ 6

Я пытался так много вещей, и ничего не получалось. Однако, если вы используете Xcode CLI Tools в Mojave и у вас возникли проблемы с установкой psycopg2, попробуйте следующую команду и попробуйте снова установить psycopg2.

sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /

Это было описано как проблема Мохаве: Pillowissue

В моем случае это решило проблему.

Ответ 7

Фокусировка на этой строке: ld: библиотека не найдена для -lpq

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

Введите "pg_config" в командной строке. Надеюсь, вы видите, что он не найден. Если нет, выполните следующие действия:

sudo find/-name pg_config

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

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

Ответ 8

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

fooobar.com/questions/272494/...

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

Ответ 9

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