Jak zainstalować psycopg2 z "pip" w Pythonie?

Używam virtualenv i muszę zainstalować "psycopg2".

Zrobiłem co następuje:

pip install http://pypi.python.org/packages/source/p/psycopg2/psycopg2-2.4.tar.gz#md5=24f4368e2cfdc1a2b03282ddda814160

I mam następujące wiadomości:

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

Moje pytanie, muszę to zrobić tylko po to, aby psycopg2 działał?

python setup.py build_ext --pg-config /path/to/pg_config build ...
Author: Kasrâmvd, 2011-03-24

26 answers

Znalazłem ten post szukając linuksowego rozwiązania tego problemu.

Ten post napisany przez "goshawk" dał mi rozwiązanie: Uruchom sudo apt-get install libpq-dev python-dev Jeśli jesteś na Ubuntu/Debianie.

Update

Ponieważ więcej osób uznało tę odpowiedź za przydatną i opublikowało własne rozwiązania, oto ich lista:

Debian / Ubuntu

Python 2

sudo apt install libpq-dev python-dev

Python 3

sudo apt install libpq-dev python3-dev

Dodatkowe

Jeśli żadne z powyższych nie rozwiąże Twojego problemu, try

sudo apt install build-essential

Lub

sudo apt install postgresql-server-dev-all
 666
Author: joar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-06 15:22:27

Na CentOS potrzebne są pakiety Postgres dev:

sudo yum install python-devel postgresql-devel
To było rozwiązanie przynajmniej na CentOS 6.
 110
Author: Banjer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-23 09:21:52

Na Mac Mavericks z Postgres.aplikacja w wersji 9.3.2.0 RC2 musiałem użyć następującego kodu po zainstalowaniu Postgres:

sudo PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.3/bin pip install psycopg2

 79
Author: metasequoia,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-22 01:51:34

Jeśli jesteś na Macu możesz użyć homebrew

brew install postgresql

I wszystkie inne opcje są tutaj: http://www.postgresql.org/download/macosx/

Powodzenia

 68
Author: nichochar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-31 16:26:26

Niedawno skonfigurowałem psycopg2 na komputerze z systemem windows. Najprostszą instalacją jest użycie pliku wykonywalnego windows. Znajdziesz go pod adresem http://stickpeople.com/projects/python/win-psycopg/.

Aby zainstalować natywny plik binarny w wirtualnym środowisku, użyj easy_install:

C:\virtualenv\Scripts\> activate.bat
(virtualenv) C:\virtualenv\Scripts\> easy_install psycopg2-2.5.win32-py2.7-pg9.2.4-release.exe
 60
Author: Praveen Gollakota,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-01 20:52:27

W Pythonie 3 powinieneś użyć sudo apt-get install libpq-dev python3-dev pod Debianem.

 27
Author: André,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-03 18:39:02

To mi się udało (na RHEL, CentOS:

sudo yum install postgresql postgresql-devel python-devel

A teraz dołącz ścieżkę do katalogu binarnego postgresql z instalacją pip:

sudo PATH=$PATH:/usr/pgsql-9.3/bin/ pip install psycopg2

Upewnij się, że zawiera prawidłową ścieżkę. To wszystko:)

Aktualizacja: w Pythonie 3 Zainstaluj python3-devel zamiast python-devel

 25
Author: radtek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-22 23:29:58

Jeśli używasz Mac OS, powinieneś zainstalować PostgreSQL ze źródła. Po zakończeniu instalacji musisz dodać tę ścieżkę używając:

export PATH=/local/pgsql/bin:$PATH

Lub możesz dodać ścieżkę w następujący sposób:

export PATH=.../:usr/local/pgsql/bin

W pliku .profile lub .zshrc.

Może się to różnić w zależności od systemu operacyjnego.

Możesz śledzić proces instalacji z http://www.thegeekstuff.com/2009/04/linux-postgresql-install-and-configure-from-source/

 21
Author: attomos,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-02 07:22:06

Odpowiedzi na razie są zbyt podobne do magicznych przepisów. Wyświetlony błąd informuje, że pip nie może znaleźć potrzebnej części biblioteki zapytań PostgreSQL. Prawdopodobnie dzieje się tak dlatego, że masz go zainstalowanego w niestandardowym miejscu dla Twojego systemu operacyjnego, dlatego wiadomość sugeruje użycie opcji --pg-config.

Ale częstszym powodem jest to, że w ogóle nie masz zainstalowanego libpq. Dzieje się tak często na komputerach, na których nie masz zainstalowanego serwera PostgreSQL, ponieważ tylko chcesz uruchamiać aplikacje klienckie, a nie sam serwer. Każdy OS / distro jest inny, na przykład na Debianie / Ubuntu musisz zainstalować libpq-dev. Pozwala to na kompilację i łączenie kodu z biblioteką zapytań PostgreSQL.

Większość odpowiedzi sugeruje również zainstalowanie Biblioteki programistów Pythona. Bądź ostrożny. Jeśli używasz tylko domyślnego Pythona zainstalowanego przez Twoją dystrybucję, będzie to działać, ale jeśli masz nowszą wersję, może to spowodować problemy. Jeśli zbudowałeś Pythona na tej maszynie to mamy już biblioteki dev potrzebne do kompilacji bibliotek C / C++ do interfejsu z Pythonem. Tak długo, jak używasz poprawnej wersji pip, tej zainstalowanej w tym samym folderze binarnym co binarny python, to wszystko jest ustawione. Nie ma potrzeby instalowania starej wersji.

 16
Author: Michael Dillon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-17 19:41:13

On Debian/Ubuntu:

Najpierw zainstaluj i zbuduj zależności psycopg2 pakietu:

# apt-get build-dep python-psycopg2

Następnie w środowisku wirtualnym skompiluj i zainstaluj psycopg2 Moduł:

(env)$ pip install psycopg2
 13
Author: Omid Raha,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-06 14:27:15

Robiłem to już wcześniej, gdzie w windows instalujesz najpierw w swojej podstawowej instalacji Pythona.

Następnie, ręcznie skopiuj zainstalowany psycopg2 do instalacji virtualenv.

Nie jest ładny, ale działa.

 6
Author: monkut,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-27 03:35:21

Oprócz instalacji wymaganych pakietów, musiałem również ręcznie dodać katalog PostgreSQL bin do PATH.
$vi ~/.bash_profile
Dodaj PATH=/usr/pgsql-9.2/bin:$PATH Przed export PATH.
$source ~/.bash_profile
$pip install psycopg2

 5
Author: xtranophilist,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-30 09:51:13

W windows XP pojawia się ten błąd, jeśli postgres nie jest zainstalowany ...

 3
Author: Sam Joseph,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-14 12:42:47

Zainstalowałem Postgresql92 używając repozytorium RedHat / CentOS na stronie pobierania PG http://www.postgresql.org/download/linux/redhat/

Aby uzyskać pg_config, musiałem dodać /usr/pgsql-9.2 / bin do PATH.

 3
Author: jdborg,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-27 15:24:11

Walczę z tym od kilku dni i w końcu wymyśliłem, jak uruchomić polecenie "pip install psycopg2" w virtualenv w Windows (uruchamiając Cygwin).

Naciskałem " pg_config executable not found."błąd, ale już Pobrałem i zainstalowałem postgres w systemie Windows. Zainstalowano go również w Cygwinie; uruchomienie "which pg_config" w Cygwinie dało"/usr/bin / pg_config", a uruchomienie" pg_config " dało rozsądne wyjście -- jednak wersja zainstalowana z Cygwinem jest:

VERSION = PostgreSQL 8.2.11

To nie będzie działać z bieżącą wersją psycopg2, która wydaje się wymagać co najmniej 9.1. Kiedy dodałem "c:\Program Files\PostgreSQL \ 9.2 \ bin" do mojej ścieżki Windows, Cygwin PIP installer był w stanie znaleźć poprawną wersję PostgreSQL, I udało mi się pomyślnie zainstalować moduł za pomocą pip. (Jest to prawdopodobnie lepsze niż używanie Cygwin w wersji PostgreSQL, ponieważ natywna wersja będzie działać znacznie szybciej).

 2
Author: Symmetric,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-26 03:31:43

Na Fedorze 24: Dla Pythona 3.x

sudo dnf install postgresql-devel python3-devel

sudo dnf install redhat-rpm-config

Aktywuj swoje wirtualne środowisko:

pip install psycopg2
 2
Author: Rajkumar Rajendran,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-11 02:09:08

Dla niskich użytkowników Windows utknęli konieczności instalacji psycopg2 z poniższego linku, po prostu zainstalować go do dowolnej instalacji Pythona masz skonfigurowany. Umieści folder o nazwie "psycopg2" w folderze site-packages Twojej instalacji Pythona.

Następnie po prostu skopiuj ten folder do katalogu site-packages twojego virtualenv i nie będziesz miał żadnych problemów.

Tutaj znajduje się link, w którym można znaleźć plik wykonywalny do zainstalowania psycopg2

Http://www.lfd.uci.edu / ~ gohlke / pythonlibs /

 1
Author: Chris Hawkes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-21 21:33:04

Na OpenSUSE 13.2 to naprawiło:

sudo zypper in postgresql-devel 
 1
Author: Elliott,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-01 18:19:30

Mogłem zainstalować go na komputerze z systemem windows i używając Anaconda / Spyder z Pythonem 2.7 za pomocą następujących komend:

 !pip install psycopg2

Następnie nawiązanie połączenia z bazą danych:

 import psycopg2
 conn = psycopg2.connect(dbname='dbname',host='host_name',port='port_number', user='user_name', password='password')
 1
Author: Cristian Muñoz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-11 11:18:57

W Arch rozkład bazowy:

sudo pacman -S python-psycopg2
pip2 install psycopg2  # Use pip or pip3 to python3
 1
Author: iraj jelodari,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-09 09:29:28

Psycopg2 zależy od bibliotek Postgres. Na Ubuntu możesz użyć:

apt-get install libpq-dev

Wtedy:

pip install psycopg2
 1
Author: Manish Gupta,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-18 07:36:15

Na Ubuntu potrzebowałem tylko pakietu Postgres dev:

sudo apt-get install postgresql-server-dev-all

*testowane w virtualenv

 0
Author: marcanuy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-04 14:47:29

Na OSX 10.11.6 (El Capitan)

brew install postgresql
PATH=$PATH:/Library/PostgreSQL/9.4/bin pip install psycopg2
 0
Author: iNoob,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-24 23:35:54

Na OSX z macports:

sudo port install postgresql96
export PATH=/opt/local/lib/postgresql96/bin:$PATH
 0
Author: Palimpseste,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-17 14:07:24

Jeśli pip nie działa, możesz pobrać .plik whl stąd https://pypi.python.org/pypi/psycopg2 wyciągnij to.. than python setup.py install

 0
Author: Umer Farooq,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-23 12:21:30

Spróbuj w Gentoo:

emerge dev-libs/libpqxx
 -1
Author: tokhi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-29 12:06:21