Невозможно установить 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.
Заранее благодарим за помощь.
Ответы
Ответ 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.