Python'a “pip” ile psycopg2 nasıl kurulur?


506

Ben kullanıyorum virtualenvve ben "psycopg2" yüklemeniz gerekir.

Aşağıdakileri yaptım:

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

Ve aşağıdaki mesajlar var:

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

Benim sorum, psycopg2'nin çalışması için bunu yapmam gerekiyor mu?

python setup.py build_ext --pg-config /path/to/pg_config build ...

3
Python setup.py build_ext --pg-config / path / to / pg_config build ... denediğinizde işe yaradı mı?
lajarre

2
Python 3.4 veya python 3.5 için, ilgili sürümün dev paketini sudo apt install libpq-dev python3.4-devveya gibi yüklemelisiniz:sudo apt install libpq-dev python3.5-dev
Avinash Raj

Yanıtlar:


809

Not : Bir süre önce PyPI'de Windows için ikili tekerlekler var, bu yüzden bu artık Windows kullanıcıları için bir sorun olmamalı. Linux, Mac kullanıcıları için çözümler aşağıda verilmiştir, çünkü birçoğu bu yayını web aramalarıyla bulmaktadır.


seçenek 1

psycopg2-binaryBunun yerine PyPI paketini yükleyin, Linux ve Mac OS için Python tekerlekleri vardır.

pip install psycopg2-binary

seçenek 2

psycopg2Paketi kaynaktan oluşturmak için ön koşulları yükleyin :

Debian / Ubuntu

Python 3

sudo apt install libpq-dev python3-dev

python3.8-devÖrneğin Python 3.8 gibi bir yazılım yüklemeniz gerekebilir .

Python 2 1

sudo apt install libpq-dev python-dev

Bu yeterli değilse, deneyin

sudo apt install build-essential

veya

sudo apt install postgresql-server-dev-all

ayrıca psycopg2'yi tekrar kurmadan önce.

CentOS 6

Banjer'in cevabına bakın


1 Gerçekten mi? 2020


7
11.04: farklı hatalar, aynı çözüm. Dev sürümlerine ibadet!
I159

5
@ I159 - *-devpaketleri bir uygulama hazırlanması için gerekli dosyalarını içeren bir kaynaktan (şekilde kütüphanesi tarafından sağlanan işlevleri kullanır psycopg2kullanımları libpqve pythondiğerleri arasında, kütüphaneler).
joar

21
Ubuntu 12.04 LTS kullanıyorum ve ayrıcasudo apt-get install postgresql-server-dev-all
caleb

4
Birisi neden sadece PATH'ye pg_config içeren dizini değil (veya --pg-config'i kullanabilir) açıklayabilir?
lajarre

5
Eğer burada Dockerhub'dan python 3 Kereviz konteynerine psycopg2'yi yükleme konusunda sorun yaşıyorsanız, aynı zamandasudo apt-get install -y build-essential
derrend

118

CentOS'ta postgres dev paketlerine ihtiyacınız var:

sudo yum install python-devel postgresql-devel

En azından CentOS 6'daki çözüm buydu.


1
Bence bu sadece CentOS değil. psycopg yerel bağımlılıklara sahiptir, bu nedenle kaynaktan (pip'in yaptığı şey) inşa etmek için PostgreSQL geliştirme kütüphanelerinin orada olması gerekir. (C başlıkları, belki? Yerel kod derleme hakkında fazla bir şey bilmiyorum.)
jpmc26

3
CentOS 6'daki sorunu çözdüğüne katılıyorum. $ PATH'a /usr/pgsql-9.3/bin eklemem gerektiğini eklemek istiyorum. İşte bunun nasıl yapılacağına dair bir örnek veren bir yazı. serverfault.com/questions/102932/…
Ryder Brooks

CentOS 7 ve Python 3.4 için "python34-devel" yüklemem gerekti. İlgili bir soruya cevabım: stackoverflow.com/a/42370489/26219
Mark Edington

AWS EC2'de, RHEL tabanlı 64bit Amazon Linux / 2.5.1
Ben Wheeler

Fedora'da Python3 için sudo yum install python36-devel(36'yı Python 3 sürümünüzle değiştirin).
LoMaPh

85

Postgres.app sürüm 9.3.2.0 RC2'li Mac Mavericks'te Postgres'i yükledikten sonra aşağıdaki kodu kullanmam gerekiyordu:

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


sudo PATH = $ PATH: /Applications/Postgres93.app/Contents/MacOS/bin pip install psycopg2 [5 Nisan 2014 itibariyle]
user798719

2
Virtualenv kullanıyorsanız 'sudo' uygulamasına ihtiyacınız yoktur, bu yüzden virtualenv'inizi aktif hale getirin ve 'PATH = $ PATH: /Applications/Postgres.app/Contents/Versions/9.3/bin pip install psycopg2'
elin3t

3
Benim durumum OS X Ver 10.9.4: sudo PATH = $ PATH: /Library/PostgreSQL/9.2/bin pip install psycopg2
emecas

3
Evet, bu da benim için çalıştı. PostgreSQL'i kurduktan sonra yolumu ayarlamak zorunda kaldım PATH=$PATH:/Library/PostgreSQL/9.4/bin pip install psycopg2.
iamfrancisyo

4
En son sürümü kullanın: PATH = $ PATH: /Applications/Postgres.app/Contents/Versions/latest/bin pip install psycopg2
Diego Sarmiento

80

Eğer bir mac kullanıyorsanız homebrew kullanabilirsiniz

brew install postgresql

Ve diğer tüm seçenekler burada: http://www.postgresql.org/download/macosx/

İyi şanslar


2
nichochar'ın yanıtı ve attomos'un yanıtı (postgresql'i yükle ve yolu değiştir) birlikte benim için sorunu çözdü. yolu düzenlemenin en kolay yolu terminalinizden "sudo nano / etc / path" komutunu çalıştırmaktır.
tbradley22

2
Bunun için teşekkür ederim. Bunu bulmadan önce delirmek üzereydim!
Leo C Han

1
Benim için de çalıştı, benim yolumla maymun gerek (ve genel olarak, burada sudo tavsiye etmem - bunu kullanıcı alanında yapabilmelisiniz).
duozmo

Bu virtualenvOP'nin istediği gibi postgresql'i yüklemez .
Jorge Leitao

Ben OP sanal olarak mutlaka postgres istedi sanmıyorum. Virtualenv kullandığını söyledi. Bence postgresql'in sadece bir python kütüphanesinden daha büyük bir hizmet olduğunu yanlış anladı.
nichochar

61

Kısa süre önce bir windows makinesinde psycopg2'yi yapılandırdım. En kolay kurulum, bir windows çalıştırılabilir ikili dosyası kullanmaktır. Http://stickpeople.com/projects/python/win-psycopg/ adresinde bulabilirsiniz .

Yerel ikili dosyayı sanal bir ortama yüklemek için easy_install komutunu kullanın:

C:\virtualenv\Scripts\> activate.bat
(virtualenv) C:\virtualenv\Scripts\> easy_install psycopg2-2.5.win32-py2.7-pg9.2.4-release.exe

3
Yanıtınız için teşekkürler. Ancak sanal bir ortama yüklemem gerekiyor. Saygılarımızla,
André

4
Bu hile (nezaket, Ned Batchelder) geçmişte ikili dosyalardan bir
sanal ortama

13
Windows üzerinde "pip install psycopg2" almanın gerçekten bir yolu yok mu? Psycopg2 için bir yama gerekli olsa bile, buna değecektir.
Slacy

1
Postgres makineme yüklenmediğinde bu hatayı aldım - postgres yükledim ve hata gitti ...
Sam Joseph

2
stickpeople bağlantısı ayrıca sanal env'yi tartışır ve bir pip yükleme sürümüne işaret eder github.com/nwcell/psycopg2-windows
seanv507

27

Python 3 için sudo apt-get install libpq-dev python3-devDebian altında kullanmalısınız .


27

Bu benim için işe yaradı (RHEL'de, CentOS:

sudo yum install postgresql postgresql-devel python-devel

Ve şimdi pip install ile postgresql ikili dizininizin yolunu ekleyin:

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

Doğru yolu eklediğinizden emin olun. Bu kadar :)

GÜNCELLEME: python 3 için lütfen python3-develyerine yükleyinpython-devel


PATH ortam değişkenini güncellemem gerekmediğini unutmayın.
acımasız

Terminal oturumunuzu yeniden yüklerseniz gerekmemelisiniz.
radtek

Mükemmel Çok teşekkür ederim.
Jorge Vidinha

Python 3 kullanıyorsanız, numaralı Python devel paketlerini kurmanız gerekir. Bakınız: stackoverflow.com/a/42370489/26219
Mark Edington

21

Mac OS kullanıyorsanız PostgreSQL'i kaynaktan yüklemelisiniz. Yükleme tamamlandıktan sonra, şu yolu kullanarak bu yolu eklemeniz gerekir:

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

veya yolu şu şekilde ekleyebilirsiniz:

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

senin içinde .profiledosya veya .zshrcdosyanın.

Bu işletim sistemine göre değişebilir.

Yükleme işlemini http://www.thegeekstuff.com/2009/04/linux-postgresql-install-and-configure-from-source/ adresinden takip edebilirsiniz.


1
Neden Homebrew yerine kaynaktan?
duozmo

@duozmo 2012 yılında yanıtlandı ve ben o zaman Homebrew ile kurmaya çalıştığımı düşünüyorum ama başarısız oldu. Şimdi, PostgreSQL'i Homebrew kullanarak sorunsuz kurdum.
attomos

17

Şimdiye kadar cevaplar sihirli tariflere çok benziyor. Aldığınız hata, pip'in PostgreSQL Sorgu kitaplığının gerekli bir bölümünü bulamadığını söyler. Muhtemelen bunun nedeni işletim sisteminiz için standart olmayan bir yere kurmuş olmanızdır, bu nedenle mesaj --pg-config seçeneğini kullanmanızı önerir.

Ancak daha yaygın bir neden, libpq'in yüklü olmamasıdır. Bu genellikle PostgreSQL sunucusunun kurulu olmadığı makinelerde olur çünkü sunucunun kendisini değil yalnızca istemci uygulamalarını çalıştırmak istersiniz. Her işletim sistemi / dağıtım farklıdır, örneğin Debian / Ubuntu üzerinde libpq-dev kurmanız gerekir. Bu, kodu PostgreSQL Sorgu kitaplığına karşı derlemenize ve bağlamanıza olanak tanır.

Yanıtların çoğu aynı zamanda bir Python dev kütüphanesi kurmanızı önerir. Dikkatli ol. Yalnızca dağıtımınız tarafından yüklenen varsayılan Python'u kullanıyorsanız, bu işe yarayacaktır, ancak daha yeni bir sürümünüz varsa sorunlara neden olabilir. Bu makinede Python oluşturduysanız, C / C ++ kütüphanelerini Python ile arayüz oluşturmak için derlemek için gerekli dev kütüphanelerine zaten sahipsiniz. Doğru pip sürümünü kullandığınız sürece, python ikili ile aynı bin klasörüne yüklü olan, o zaman hepiniz ayarlanır. Eski sürümü kurmanıza gerek yok.


1
Ve Os x hakkında? Yani, Unix'e dayanıyor ama bence farklı olabilir.
Lara

13

Açık Debian/Ubuntu:

İlk kurulum ve psycopg2paket bağımlılıkları :

# apt-get build-dep python-psycopg2

Ardından sanal ortamınızda psycopg2modülü derleyin ve kurun :

(env)$ pip install psycopg2

6

Bunu daha önce Windows'ta temel python kurulumunuza yüklediğiniz yerde yaptım.

Ardından, yüklü psycopg2'yi el ile virtualenv kurulumuna kopyalayın.

Güzel değil, ama işe yarıyor.


2
lütfen biraz açar mısın? Psycopg2'yi ilk etapta nereden edinebilirsiniz?
Saher Ahwal


Bunu da yorucu günlerden ve çevrimiçi olarak açıklanan diğer tüm seçeneklerden sonra yaptım. Hala pip ile yüklenmesini engelleyen şey hakkında şaşkınım venv. Sanal ortamın dışına yükleme yaptım, sorun değil. Daha sonra bu dosyayı Python paket kitaplığı dizinimden kopyaladım ve içinde aynı yapıştırdım venv. Benim önsezim, Python versiyonlarım Anaconda dağılımları olduğu için, varsayılan / kullanılan yolla yanlış bir şey olduğu.
kuanb

5

Gerekli paketleri kurmanın yanı sıra, PostgreSQL bin dizinini PATH'e manuel olarak eklemem gerekiyordu. Önce
$vi ~/.bash_profile
ekleyin .PATH=/usr/pgsql-9.2/bin:$PATHexport PATH
$source ~/.bash_profile
$pip install psycopg2


Bunun neden varsayılan yola gelmediği hakkında bir fikrin var mı?
Bret

1
Böyle bir hatayı nasıl düzeltebilirim lütfen bana yardım et !!! Komut "/ usr / bin / python -c" içe aktarma kurulum araçları, belirteç; __ dosya __ = '/ özel / tmp / pip-build-AUbwwG / psycopg2 / setup.py'; exec (derleme (getattr (belirteç, 'açık', açık) ) ( dosya ) .read (). replace ('\ r \ n', '\ n'), dosya , 'exec')) "install --record /tmp/pip-44Va05-record/install-record.txt --single-version-externally-yönetilen --compile "/ private / tmp / pip-build-AUbwwG / psycopg2 hata kodunda 1 ile başarısız oldu
vijay

3

Windows XP'de postgres yüklü değilse bu hatayı alırsınız ...


bunun doğru olduğundan emin misin? Windows makineme postgres yükledim ve hala anladım. ?
Saher Ahwal

2
Neden kendi sitelerinde postgres için ön koşul olarak sahip değiller?
Saher Ahwal


3

Psycopg2'yi kurmadan önce python-dev paketini kurmanız gerekir.

Linux'tan (ve muhtemelen diğer sistemlerden çalışıyorsanız, ancak deneyimden konuşamıyorum), dev paketini yüklerken çalışan python'un hangi sürümü hakkında oldukça kesin olduğundan emin olmanız gerekir.

Örneğin şu komutu kullandığımda:

sudo apt-get install python3-dev

Hala denerken aynı hatayla karşılaştım

pip install psycopg2

Python 3.7 kullandığım için bu komutu kullanmam gerekiyordu

sudo apt-get install python3.7-dev

Bunu yaptıktan sonra daha fazla sorunla karşılaşmadım. Açıkçası senin python sürüm 3.5 üzerinde o 7 olarak 5 değiştirmek istiyorum.


2
Bu cevap olmalı sudo apt-get install python-x.x-dev, sorunu düzeltti.
Arbazz Hussain

2

Ben günlerce bununla mücadele ve nihayet Windows (bir Cygwin çalışan) sanal birv çalıştırmak için "pip install psycopg2" komutunu almak için anladım.

Ben "pg_config yürütülebilir bulunamadı." hatası, ancak zaten Windows'ta postgres indirip yükledim. Cygwin'e de kurulmuş; Cygwin'de "hangi pg_config" çalıştırıldığında "/ usr / bin / pg_config" ve "pg_config" çalıştırılırken akıl sağlığı çıktı - ancak Cygwin ile kurulan sürüm:

SÜRÜM = PostgreSQL 8.2.11

Bu, en az 9.1 sürümü gerektiren geçerli psycopg2 sürümü ile çalışmaz. Windows yoluma "c: \ Program Files \ PostgreSQL \ 9.2 \ bin" eklediğimde, Cygwin pip yükleyicisi PostgreSQL'in doğru sürümünü bulabildi ve pip kullanarak modülü başarıyla yükleyebildim. (Yerel sürüm çok daha hızlı çalışacağından, muhtemelen PostgreSQL'in Cygwin sürümünü kullanmak tercih edilir).


2

Fedora 24'te: Python 3.x için

sudo dnf install postgresql-devel python3-devel

sudo dnf install redhat-rpm-config

Sanal Ortamınızı etkinleştirin:

pip install psycopg2

2

Psycopg2 Postgres Kütüphanelerine Bağlıdır. Ubuntu'da şunları kullanabilirsiniz:

apt-get install libpq-dev

Sonra:

pip install psycopg2

Pip paketlerini ve apt-get paketlerini karıştırmak iyi bir uygulama değildir.
wswld

1

Düşük Windows kullanıcıları için aşağıdaki bağlantıdan psycopg2'yi kurmak zorunda kaldık, sadece kurulumunuzdaki Python kurulumuna yükleyin. "Psycopg2" adlı klasörü python kurulumunuzun site paketleri klasörüne yerleştirir.

Bundan sonra, bu klasörü virtualenv'inizin site paketleri dizinine kopyalayın ve sorun yaşamayacaksınız.

İşte psycopg2 yüklemek için yürütülebilir bulabilirsiniz

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


Bunu denedim ve psycopg2-2.6-cp34-none-win_amd64.whl bu platformda desteklenen bir tekerlek değil olsun.
jayeshkv

1

OpenSUSE 13.2'de bu düzeltildi:

sudo zypper in postgresql-devel 

1

Bir windows makinesinde kurabilirim ve Anaconda / Spyder'ı python 2.7 ile aşağıdaki komutlarla kullanarak yapabilirim:

 !pip install psycopg2

Sonra veritabanına bağlantı kurmak için:

 import psycopg2
 conn = psycopg2.connect(dbname='dbname',host='host_name',port='port_number', user='user_name', password='password')

Ben listelenen veritabanı ile çalışma bu var psql -l, hosthosthost, varsayılan veritabanı portu 5432, \dupsql almak ve parola tahmin kez kullanıcı listelenen .
Harry Moreno

1

In Arch baz dağılımları:

sudo pacman -S python-psycopg2
pip2 install psycopg2  # Use pip or pip3 to python3


0

Ubuntu'da sadece postgres dev paketine ihtiyacım vardı:

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

* Bir sanal ortamda test edildi


0

OSX 10.11.6'da (El Capitan)

brew install postgresql
PATH=$PATH:/Library/PostgreSQL/9.4/bin pip install psycopg2

OSX 10.12.3'te (Sierra):brew install postgresql PATH=$PATH:/usr/local/Cellar/postgresql/9.6.2/bin/ pip install psycopg2
ishandutta2007

OS X 10.14'te bu çok zorlayıcıydı. Ayrıntılı çözümü buradan görebilirsiniz: stackoverflow.com/a/57014480/2162844
Bisonbleu

0

Macport'lu OSX'te:

sudo port install postgresql96
export PATH=/opt/local/lib/postgresql96/bin:$PATH

0

Bu sorunu yaşıyordum, ana nedeni 2 eşit sürümün yüklü olmasıydı. Biri postgres.app ve diğeri HomeBrew tarafından.

Yalnızca APP'yi tutmayı seçerseniz:

brew unlink postgresql
pip3 install psycopg2

0

MacOS Mojave'de, benim için çalışan Komut Satırı Araçları 10.3 ile en yeni güncellemeyi yaptığınızdan emin olun - Yazılım Güncellemesi ile güncellendi, Mojave'deki Komut Satırı Araçları'nın önceki sürümü benim için çalışmadı.


-1

Şunu deneyin Gentoo:

emerge dev-libs/libpqxx

-2

Windows'ta bu şekilde çalışır
Sanal ortamda pip yoluyla şişeyi kurduktan sonra komut isteminde bu komutu çalıştırın

>pip install psycopg2

Bunu kontrol et

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.