Я пытался установить postgres для учебника, но pip
выдает ошибку:
pip install psycopg
Я получаю обрывок ошибки:
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'.
Где pg_config
в моем virtualenv? Как это настроить? Я использую virtualenv, потому что мне не нужна общесистемная установка postgres.
Ответы:
На Mac, если вы используете Postgres.app , файл pg_config находится в вашем
/Applications/Postgres.app/Contents/Versions/<current_version>/bin
каталоге. Это нужно будет добавить в ваш системный путь, чтобы исправить эту ошибку, например:export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/<current_version>/bin
Так, например, если текущая версия Postgres.app - 9.5, эта строка экспорта будет:
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.5/bin
В более поздних версиях Postgres.app (> 9.5?) Вы можете просто добавить «последняя» вместо номера версии, например:
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin
источник
9.4
.bash_profile
если используется стандартный bash терминала. ЕСЛИ, используя,zsh
добавьте эту строку в.zshrc
файл. Все это вы найдете в своем домашнем каталоге. (ls -la
<current_version>
сlatest
которой указывает на последнюю установленную версию Postgres. Моя папка выглядит так:ls /Applications/Postgres.app/Contents/Versions/
и она дает9.5/ latest/
На Mac решение - установить
postgresql
:brew install postgresql
В CentOS решение заключается в установке
postgresql-devel
:sudo yum install postgresql-devel
pg_config
вpostgresql-devel
пакетеисточник
Я полностью согласен с джоном хайтом в том, что большинство опубликованных ответов полностью оффтопны, если OP точно указывает необходимость использования virtualenv .
Для меня ответ заключался в запуске следующей команды в командной строке при активации virtualenv:
export PATH="/Applications/Postgres.app/Contents/Versions/9.4/bin:$PATH"
(обратите внимание, что часть 9.4 обозначает версию и может отличаться)
или если вы хотите использовать последнюю установленную версию Postgres:
export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"
а потом:
pip install psycopg2
идет успешно, если вы установили postgres. А если нет, то помните, что лучшим и рекомендуемым решением является использование: Postgres.app
источник
export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"
если вы хотите использовать последнюю установленную версию PostgresНе забывайте, что ваша переменная $ PATH в виртуальной среде! = Ваша глобальная переменная $ PATH. Вы можете подтвердить это с помощью 'echo $ PATH' в вашем виртуальном окружении, а также в новой оболочке. Итак, если вы не хотите установить PostgreSQL в качестве уникального экземпляра в своей виртуальной среде (что не стоит делать, я думаю), вам необходимо изменить переменную $ PATH в virtualenv, чтобы включить путь к вашей глобальной установке (что будет решить вашу отсутствующую ошибку pg_config).
Вот шаги:
1.) В новой оболочке введите which pg_config. Это вернет путь. Скопируйте это. В моем случае путь выглядел так: /Applications/Postgres.app/Contents/Versions/9.3/bin
2.) Вернувшись в оболочку virtualenv, введите «export PATH = / your-path-to-pg_config: $ PATH»
3.) Затем, все еще в пределах virtualenv, «pip install psycopg2»
Если все пойдет по плану, это установит psycopg2 в виртуальной среде, но установка будет относиться к вашей установке Global PostgreSQL. В моем случае эта глобальная установка была установлена через Postgres.App, отсюда и путь. Я предпочитаю этот метод работы с psycopg2, поскольку он означает, что я могу легко использовать базу данных в любом виртуальном окружении, а не только в определенной виртуальной среде.
Надеюсь, это поможет любому, кто сюда приедет. Для сока Google вот явный (и расплывчатый) язык ошибки, возвращаемый при столкновении с этой проблемой:
Команда python setup.py egg_info завершилась неудачно с кодом ошибки 1
источник
Вот как мне удалось решить эту проблему на моем Mac (OSX 10.9):
brew update brew install --force ossp-uuid brew install postgresql pip install psycopg
При попытке я получил ошибку CLANG
pip install psycopg
( проблема с LLVM 5.1 ), поэтому мне пришлось вместо этого установить psycopg с помощью этой команды:ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install psycopg
Это похоже на решение Mingyu , но есть достаточно различий, которыми, как мне казалось, стоит поделиться.
источник
Эта ошибка возникает, когда инструменты сборки не могут найти библиотеки Postgresql.
Часто требуется указать psycopg2, как найти двоичный файл pg_config, вы можете:
добавьте путь к pg_config в путь к вашей оболочке (/ usr / local / pgsql / bin /)
или отредактируйте файл setup.cfg в исходной папке psycopg2 и укажите полный путь к pg_config в строке, которая начинается с pg_config =
locate pg_config
узнать, где он находится, или просто ввести,which pg_config
и он должен указать вам путь.Реже ошибка возникает из-за того, что в вашей системе не установлен postgresql. Если да, скачайте и соберите postgres или скачайте предварительно созданный двоичный файл psycopg2 для OS X.
источник
Для
OS X El Capitan (10.11.6)
+brew
+virtualenv
+PostgreSQL 9.5
:После установки
PostgreSQL 9.5
:brew install postgresql@9.5
Затем откройте свой терминал и выполните:
export PATH=$PATH:/usr/local/opt/postgresql\@9.5/bin/ pip install psycopg2
источник
необходимо настроить путь postgresql:
export PATH=$PATH:/Library/PostgreSQL/11/bin
после необходимо установить требования:
pip3 install -r requirements
источник
virtualenv предназначен для пакетов Python. Я не думаю, что вы сможете содержать postgres внутри virtualenv. Сообщение об ошибке, которое вы видите, вероятно, связано с тем, что вы еще не установили postgres. Сценарий установки psycopg2 ищет файлы postgres (в данном случае pg_config) и не находит их, потому что он не установлен. postgres нельзя установить с помощью pip или virtualenv.
источник
В Windows я установил postgres вручную с http://www.enterprisedb.com/products-services-training/pgdownload#windows . После этого работает та же команда.
источник
В дополнение к ответам, предоставленным @bkev и @andi, согласно документации на Postgres.app, вы должны добавить следующее в свой bash_profile на Mac:
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin
Обратите внимание, что здесь нет жестко запрограммированного номера версии. Я хотел добавить это в качестве комментария к приведенным выше ответам, но у меня недостаточно репутации для этого.
источник
Если вы используете postgresql 9.4, файл находится в
Название пакета
postgresql94-9.4.9-1PGDG.rhel6.x86_64
чтобы добавить pg_config в ваш PATH, сделайте следующее
PATH=$PATH:/usr/pgsql-9.4/bin/
источник
Если вам не нужно использовать
psycopg
драйвер специально, переключитесь наpg8000
драйвер. Это чистый Python и менее привередливый.источник
В Ubuntu мне просто нужен был пакет postgres dev:
sudo apt-get install postgresql-server-dev-all
источник
Моя находилась в /Library/PostgreSQL/9.4/bin
export PATH=$PATH:/Library/PostgreSQL/9.4/bin
источник