Sunucu tarafı uzantısı oluşturmak için postgresql-server-dev-XY veya istemci tarafı uygulama oluşturmak için libpq-dev yüklemeniz gerekir


243

Virtualjan ile Django projesi üzerinde çalışıyorum ve yerel postgres veritabanına bağlamak. çalıştırdığımda proje diyor ki,

ImportError: No module named psycopg2.extensions

sonra yüklemek için bu komutu kullandım

pip install psycopg2

kurulum sırasında aşağıdaki hatayı verir.

Downloading/unpacking psycopg2==2.4.4
  Downloading psycopg2-2.4.4.tar.gz (648kB): 648kB downloaded
  Running setup.py (path:/home/muhammadtaqi/Projects/MyProjects/OnlineElectionCampaign/venv/build/psycopg2/setup.py) egg_info for package psycopg2

    Error: You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.

    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: You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.



----------------------------------------
Cleaning up...
Command python setup.py egg_info failed with error code 1 in /home/muhammadtaqi/Projects/MyProjects/OnlineElectionCampaign/venv/build/psycopg2
Storing debug log for failure in /home/muhammadtaqi/.pip/pip.log

Bu paketi kurdunuz mu? Değilse, yüklemek sorunu çözmelidir. postgresql-server-X.YYalnız kurulumun yardımcı olmayacağını lütfen unutmayın , çünkü bu sadece sunucu ikilisini, kütüphaneleri ve veri dosyalarını yükler, geliştirme dosyalarını (yukarıda belirtilen pakette bulunur) değil.
Abrixas2

Yanıtlar:


490

Aşağıdaki komutları kullanın, bu hatayı çözecektir:

sudo apt-get install postgresql

sonra ateş:

sudo apt-get install python-psycopg2

ve son olarak:

sudo apt-get install libpq-dev

36
Sadece müşteri kütüphanelerine ihtiyacým vardý. "sudo apt-get install libpq-dev" benim için çözdü. Teşekkürler
Priyeshj

6
Ben de sudo apt-get install python-devsonunda işe almak için ek olarak kurmak zorunda bulundu
ScottMcC

18
Teşekkür ederim! sudo apt-get install libpq-devbenim için çalıştı!
Julian Guterman

1
@ManishShrivastava, Karşılama
megabayt

1
kullanmak sudo apt-get install python3-psycopg2python3 eklemek
Ramesh Verma

67

Bu komutu terminalden bir kök olarak çalıştırıyorum ve problem çözüldü,

sudo apt-get install -y postgis postgresql-9.3-postgis-2.1
pip install psycopg2

veya

sudo apt-get install libpq-dev python-dev
pip install psycopg2

5
Çok teşekkürler libpq-devve python-devgerekli büyü yaptı
avtomaton

2
postgis? woot
techkuz

bazen sudo apt güncellemesini çalıştırmak bu tür hataları düzeltir. Her iki çözümü de denedim ama başarısız oldum. sudo apt udpate çalışan onu çözdü.
Aleem

46

Sadece libpq-dev'i yükleyin

$ sudo apt-get install libpq-dev

30

Benim için bu basit komut sorunu çözdü:

sudo apt-get install postgresql postgresql-contrib libpq-dev python-dev

Sonra yapabilirim:

 pip install psycopg2

14

Python 3 için yaptım:

sudo apt install python3-dev postgresql postgresql-contrib python3-psycopg2 libpq-dev

ve sonra şunları yapabildim:

pip3 install psycopg2

13

Psycopg2'nin ambalajını değiştirdiler. İkili sürümü yüklemek bu sorunu benim için düzeltti. İkili dosyayı kendiniz derlemek istiyorsanız yukarıdaki cevaplar hala devam eder.

Bkz. Http://initd.org/psycopg/docs/news.html#what-s-new-in-psycopg-2-8 .

İkili paketler artık varsayılan olarak yüklenmemektedir. 'Psycopg2-binary' paketi açıkça kullanılmalıdır.

Ve http://initd.org/psycopg/docs/install.html#binary-install-from-pypi

Dolayısıyla, kendi ikili dosyanızı derlemenize gerek yoksa, şunu kullanın:

pip install psycopg2-binary

1
Sen efendim hayatımı kurtardın
Haroun Hajem

3
psycopg2-binaryüretimde kullanılmamalıdır, çünkü bazı hatalara neden olacaktır.
suhailvs

1
psycopg2-binaryüretimde kullanılmamalıdır: initd.org/psycopg/docs/install.html#binary-install-from-pypi (Kopyalanan metin: psycopg2-ikili paket, yeni başlayanlar için Python ve PostgreSQL ile oynamaya başlamak zorunda değildir. psycopg2'ye bağlı olarak bir yayınlama paketinin bakımcısıysanız, modül bağımlılığı olarak 'psycopg2-binary' kullanmamalısınız. Üretim kullanımı için kaynak dağıtımını kullanmanız önerilir.)
Joseph Victor Zammit

10

Postgresql-server-dev-XY'yi kurmalısınız, burada XY sunucularınızın sürümü ve sunucu tarafında geliştirme modüllerine libpq-dev ve diğer sunucu değişkenlerini kuracaktır. Benim durumumda

apt-get install postgresql-server-dev-9.5

Paket listeleri okunuyor ... Yapıldı Bina bağımlılık ağacı Durum bilgileri okunuyor ... Tamamlandı Aşağıdaki paketler otomatik olarak kuruldu ve artık gerekli değil: libmysqlclient18 mysql-common Bunları kaldırmak için 'apt-get autoremove' kullanın. Aşağıdaki ekstra paketler kurulacak:
libpq-dev Önerilen paketler: postgresql-doc-10 Aşağıdaki YENİ paketler kurulacak: libpq-dev postgresql-server-dev-9.5

Senin durumunda

sudo apt-get install postgresql-server-dev-X.Y
sudo apt-get install python-psycopg2

4

Ubuntu 18.04'te sanal bir ortam kullanıyordum ve yalnızca bir istemci olarak yüklemek istediğimden, sadece yapmam gerekiyordu:

sudo apt install libpq-dev
pip install psycopg2

Ve sorunsuz kuruldu. Tabii ki, ikili yanıtı diğer cevaplar gibi kullanabilirsiniz, ancak bir gereksinimleri.txt dosyasında belirtildiği için bu çözümü tercih ettim.

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.