Как установить psycopg2 с помощью "pip" на Python?
Я использую virtualenv
и мне нужно установить "psycopg2".
Я сделал следующее:
pip install http://pypi.python.org/packages/source/p/psycopg2/psycopg2-2.4.tar.gz#md5=24f4368e2cfdc1a2b03282ddda814160
И у меня есть следующие сообщения:
Downloading/unpacking http://pypi.python.org/packages/source/p/psycopg2/psycopg2
-2.4.tar.gz#md5=24f4368e2cfdc1a2b03282ddda814160
Downloading psycopg2-2.4.tar.gz (607Kb): 607Kb downloaded
Running setup.py egg_info for package from http://pypi.python.org/packages/sou
rce/p/psycopg2/psycopg2-2.4.tar.gz#md5=24f4368e2cfdc1a2b03282ddda814160
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'.
Complete output from command python setup.py egg_info:
running egg_info
creating pip-egg-info\psycopg2.egg-info
writing pip-egg-info\psycopg2.egg-info\PKG-INFO
writing top-level names to pip-egg-info\psycopg2.egg-info\top_level.txt
writing dependency_links to pip-egg-info\psycopg2.egg-info\dependency_links.txt
writing manifest file 'pip-egg-info\psycopg2.egg-info\SOURCES.txt'
warning: manifest_maker: standard file '-c' not found
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'.
----------------------------------------
Command python setup.py egg_info failed with error code 1
Storing complete log in C:\Documents and Settings\anlopes\Application Data\pip\p
ip.log
Мой вопрос, мне нужно только сделать это, чтобы psycopg2 работал?
python setup.py build_ext --pg-config /path/to/pg_config build ...
37 ответов
Я нашел этот пост в поисках решения этой проблемы для Linux.
Этот пост от "ястреба" дал мне решение: беги sudo apt-get install libpq-dev python-dev
если вы используете Ubuntu/Debian.
Обновить
Поскольку все больше людей нашли этот ответ полезным и опубликовали свои собственные решения, вот их список:
Debian / Ubuntu
Python 2
sudo apt install libpq-dev python-dev
Python 3
sudo apt install libpq-dev python3-dev
дополнительный
Если ничего из перечисленного не решит вашу проблему, попробуйте
sudo apt install build-essential
или же
sudo apt install postgresql-server-dev-all
В CentOS вам нужны пакеты postgres dev:
sudo yum install python-devel postgresql-devel
Это было решение по крайней мере CentOS 6.
Если вы на Mac, вы можете использовать доморощенный
brew install postgresql
И все остальные варианты здесь: http://www.postgresql.org/download/macosx/
Удачи
На Mac Mavericks с Postgres.app версии 9.3.2.0 RC2 мне нужно было использовать следующий код после установки Postgres:
sudo PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.3/bin pip install psycopg2
Я недавно настроил psycopg2 на машине с Windows. Самая простая установка - использование исполняемого файла Windows. Вы можете найти это на http://stickpeople.com/projects/python/win-psycopg/.
Чтобы установить собственный двоичный файл в виртуальной среде, используйте easy_install:
C:\virtualenv\Scripts\> activate.bat
(virtualenv) C:\virtualenv\Scripts\> easy_install psycopg2-2.5.win32-py2.7-pg9.2.4-release.exe
Для Python 3 вы должны использовать sudo apt-get install libpq-dev python3-dev
под Debian.
Вот что у меня сработало (на RHEL, CentOS:
sudo yum install postgresql postgresql-devel python-devel
А теперь включите путь к вашему бинарному каталогу postgresql при установке pip:
sudo PATH=$PATH:/usr/pgsql-9.3/bin/ pip install psycopg2
Убедитесь, что вы указали правильный путь. Это все:)
ОБНОВЛЕНИЕ: Для Python 3, пожалуйста, установите python3-devel
вместо python-devel
Пока ответы слишком похожи на магические рецепты. Полученная ошибка говорит о том, что pip не может найти необходимую часть библиотеки запросов PostgreSQL. Возможно, это связано с тем, что он установлен в нестандартном для вашей ОС месте, поэтому в сообщении предлагается использовать параметр --pg-config.
Но более распространенная причина в том, что у вас вообще не установлен libpq. Это обычно происходит на машинах, где у вас НЕ установлен сервер PostgreSQL, потому что вы хотите запускать только клиентские приложения, а не сам сервер. Каждая ОС / дистрибутив отличается, например, в Debian / Ubuntu вам необходимо установить libpq-dev. Это позволяет вам компилировать и связывать код с библиотекой PostgreSQL Query.
В большинстве ответов также предлагается установить библиотеку Python dev. Быть осторожен. Если вы используете только установленный по умолчанию дистрибутив Python, это будет работать, но если у вас более новая версия, это может вызвать проблемы. Если вы собрали Python на этом компьютере, то у вас уже есть библиотеки dev, необходимые для компиляции библиотек C/C++ для взаимодействия с Python. Если вы используете правильную версию pip, установленную в той же папке bin, что и двоичный файл python, то все готово. Не нужно устанавливать старую версию.
Если вы используете Mac OS, вы должны установить PostgreSQL из исходного кода. После завершения установки вам нужно добавить этот путь, используя:
export PATH=/local/pgsql/bin:$PATH
или вы можете добавить путь следующим образом:
export PATH=.../:usr/local/pgsql/bin
в вашем .profile
файл или .zshrc
файл.
Это может варьироваться в зависимости от операционной системы.
Вы можете следить за процессом установки с http://www.thegeekstuff.com/2009/04/linux-postgresql-install-and-configure-from-source/
Выполните команды ниже, и все будет в порядке
apt-get update
apt установить python3-dev libpq-dev
pip3 установить psycopg2
На Debian/Ubuntu
:
Сначала установите и создайте зависимости psycopg2
пакет:
# apt-get build-dep python-psycopg2
Затем в вашей виртуальной среде скомпилируйте и установите psycopg2
модуль:
(env)$ pip install psycopg2
Прежде чем вы сможете установить psycopg2, вам необходимо установить пакет python-dev.
Если вы работаете с Linux (и, возможно, с другими системами, но я не могу сказать по своему опыту), вам нужно быть очень точным в том, какую версию python вы используете при установке пакета dev.
Например, когда я использовал команду:
sudo apt-get install python3-dev
Я все еще сталкивался с той же ошибкой при попытке
pip install psycopg2
Поскольку я использую Python 3.7 мне нужно было использовать команду
sudo apt-get install python3.7-dev
Как только я это сделал, у меня больше не было проблем. Очевидно, что если вы используете Python версии 3.5, вы бы изменили 7 на 5.
Я делал это раньше, где в Windows вы сначала устанавливаете базовую версию Python.
Затем вы вручную копируете установленную программу psycopg2 в установку virtualenv.
Это не красиво, но это работает.
Для MacOS,
Используйте команду ниже для установки psycopg2, работает как шарм!!!
env LDFLAGS="-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib" pip install psycopg2
Помимо установки необходимых пакетов, мне также нужно было вручную добавить каталог bin PostgreSQL в PATH.$vi ~/.bash_profile
добавлять PATH=/usr/pgsql-9.2/bin:$PATH
до export PATH
,$source ~/.bash_profile
$pip install psycopg2
Psycopg2 зависит от Postgres библиотек. На Ubuntu Вы можете использовать:
apt-get install libpq-dev
Затем:
pip install psycopg2
В Windows XP вы получаете эту ошибку, если postgres не установлен...
На Fedora 24: для Python 3.x
sudo dnf install postgresql-devel python3-devel
sudo dnf install redhat-rpm-config
Активируйте вашу виртуальную среду:
pip install psycopg2
Я установил Postgresql92 с помощью репозитория RedHat / CentOS на сайте загрузок PG http://www.postgresql.org/download/linux/redhat/
Чтобы получить pg_config, мне пришлось добавить /usr/pgsql-9.2/bin в PATH.
В OpenSUSE 13.2 это исправлено:
sudo zypper in postgresql-devel
ДЛЯ ПОЛЬЗОВАТЕЛЕЙ ФЕДОРА:
libpq-dev
является одной из зависимостей, однако именно так пакет должен называться при установке:libpq-devel
Так что это должно решить проблему для Fedora:
sudo yum install libpq-devel
Я боролся с этим в течение нескольких дней и наконец понял, как заставить команду "pip install psycopg2" работать в virtualenv в Windows (под управлением Cygwin).
Я нажимал на "исполняемый файл pg_config не найден". ошибка, но я уже скачал и установил postgres в Windows. Он также установлен в Cygwin; запуск "which pg_config" в Cygwin дал "/usr/bin/pg_config", а запуск "pg_config" дал вменяемый вывод - однако версия, установленная с Cygwin:
VERSION = PostgreSQL 8.2.11
Это не будет работать с текущей версией psycopg2, для которой требуется как минимум 9.1. Когда я добавил "c:\Program Files\PostgreSQL\9.2\bin" в мой путь Windows, установщик Cygwin pip смог найти правильную версию PostgreSQL, и я смог успешно установить модуль с помощью pip. (В любом случае это, вероятно, предпочтительнее, чем использовать версию PostgreSQL для Cygwin, поскольку нативная версия будет работать намного быстрее).
В арке базы раздач:
sudo pacman -S python-psycopg2
pip2 install psycopg2 # Use pip or pip3 to python3
У меня была эта проблема, основная причина заключалась в установке двух одинаковых версий. Один от postgres.app и один от HomeBrew.
Если вы решите оставить только приложение:
brew unlink postgresql
pip3 install psycopg2
На OSX с Macports:
sudo port install postgresql96
export PATH=/opt/local/lib/postgresql96/bin:$PATH
Установка на MacOS
Ниже приведены шаги, которые сработали для меня и членов моей команды при установке psycopg2 на Mac OS Big Sur и которые мы тщательно протестировали для Big Sur. Перед началом убедитесь, что у вас установлен инструмент командной строки Xcode. Если нет, то установите его с сайта разработчиков Apple. Следующие шаги предполагают, что у вас установлен homebrew. Если вы не установили homebrew, установите его. И последнее, но не менее важное: предполагается, что в вашей системе уже установлен PostgreSQL, если нет, то установите его. У разных людей разные предпочтения, но метод установки по умолчанию на официальном сайте PostgreSQL через установщик Enterprise DB - лучший метод для большинства людей.
Поместите ссылку на файл в свой файл:
export PATH="$PATH:/Library/PostgreSQL/12/bin:$PATH"
. Таким образом, у вас будет связь с файлом в/Library/PostgreSQL/12/bin
папка. Поэтому, если ваша установка PostgreSQL осуществляется другими способами, такими как Postgres.app или установка Postgres через homebrew, тогда вам необходимо иметь в своем файле ссылку наpg_config
файл изbin
папка этой установки PostgreSQL, поскольку полагается на это.Установите OpenSSL через Homebrew с помощью команды
brew install openssl
. Причина в том, что библиотека, лежащая в основе, использует openssl -psycopg2
не использует его напрямую. После установки введите следующие команды в свой файл:-
export PATH="/usr/local/opt/openssl@1.1/bin:$PATH"
-
export LDFLAGS="-L/usr/local/opt/openssl@1.1/lib"
-
export CPPFLAGS="-I/usr/local/opt/openssl@1.1/include"
Делая это, вы создаете необходимые ссылки в своем каталоге. Эти команды предлагаются brew при установке openssl и были взяты непосредственно оттуда.
-
Теперь наступает самый важный шаг - установка с помощью команды
brew install libpq
. Это устанавливает библиотеку libpq. Согласно документации
libpq - это интерфейс C-приложения для программирования PostgreSQL. libpq - это набор библиотечных функций, которые позволяют клиентским программам передавать запросы на внутренний сервер PostgreSQL и получать результаты этих запросов.
- Свяжите libpq, используя
brew link libpq
, если это не сработает, используйте команду:brew link libpq --force
. - Также введите свой
.zshrc
подать следующие
export PATH="/usr/local/opt/libpq/bin:$PATH"
. Это создает все необходимые связи дляlibpq
библиотека. - Теперь перезапустите терминал или используйте следующую команду
source ~/.zshrc
.
Это работает, даже когда вы работаете в среде conda.
NBpip install psycopg2-binary
следует избегать, потому что, по мнению разработчиков библиотеки psycopg2
Использование пакетов -binary в производстве не рекомендуется, поскольку в прошлом они оказались ненадежными в многопоточных средах. Это могло быть исправлено в более поздних версиях, но мне так и не удалось воспроизвести сбой.
В Ubuntu мне просто нужен пакет postgres dev:
sudo apt-get install postgresql-server-dev-all
* Проверено в virtualenv
Для пользователей Windows с низким уровнем дохода возникла необходимость установить psycopg2 по приведенной ниже ссылке, просто установите его на любую установленную вами версию Python. Он поместит папку с именем "psycopg2" в папку site-packages вашей установки на python.
После этого просто скопируйте эту папку в каталог site-packages вашего virtualenv, и у вас не возникнет проблем.
вот ссылка, по которой вы можете найти исполняемый файл для установки psycopg2
Я мог установить его на машине с Windows и использовать Anaconda/Spyder с python 2.7 с помощью следующих команд:
!pip install psycopg2
Затем установить соединение с базой данных:
import psycopg2
conn = psycopg2.connect(dbname='dbname',host='host_name',port='port_number', user='user_name', password='password')
Если pip не работает, вы можете скачать.whl файл отсюда https://pypi.python.org/pypi/psycopg2 извлечь его.. чем python setup.py install