Saya sedang mengerjakan proyek Django dengan virtualenv dan menghubungkannya ke database postgres lokal. ketika saya menjalankan proyek ini dikatakan,
ImportError: No module named psycopg2.extensions
maka saya menggunakan perintah ini untuk menginstal
pip install psycopg2
kemudian selama instalasi itu memberikan kesalahan berikut.
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
python
django
postgresql
Muhammad Taqi
sumber
sumber
postgresql-server-X.Y
saja tidak akan membantu, karena itu hanya menginstal biner server, pustaka dan file data, bukan file pengembangan (yang ada dalam paket yang disebutkan di atas).Jawaban:
Gunakan perintah berikut ini, ini akan menyelesaikan kesalahan:
lalu api:
dan terakhir:
sumber
sudo apt-get install python-dev
di samping untuk akhirnya bekerjasudo apt-get install libpq-dev
bekerja untukku!sudo apt-get install python3-psycopg2
untuk menambah python3Saya hanya menjalankan perintah ini sebagai root dari terminal dan masalah terpecahkan,
atau
sumber
libpq-dev
danpython-dev
melakukan sihir yang diperlukanpostgis
? wootCukup instal libpq-dev
sumber
Bagi saya, perintah sederhana ini memecahkan masalah:
Maka saya bisa melakukan:
sumber
Untuk Python 3, saya lakukan:
dan kemudian saya bisa melakukan:
sumber
Mereka mengubah kemasan untuk psycopg2. Menginstal versi biner memperbaiki masalah ini untuk saya. Jawaban di atas masih bertahan jika Anda ingin mengkompilasi biner sendiri.
Lihat http://initd.org/psycopg/docs/news.html#what-s-new-in-ps-psycopg-2-8 .
Dan http://initd.org/psycopg/docs/install.html#binary-install-from-pypi
Jadi, jika Anda tidak perlu mengkompilasi biner Anda sendiri, gunakan:
sumber
psycopg2-binary
tidak boleh digunakan dalam produksi, karena akan menyebabkan beberapa bug.psycopg2-binary
tidak boleh digunakan dalam produksi: initd.org/psycopg/docs/install.html#binary-install-from-pypi (Teks yang disalin: Paket binary psycopg2 dimaksudkan bagi pemula untuk mulai bermain dengan Python dan PostgreSQL tanpa perlu memenuhi persyaratan build. Jika Anda adalah pengelola paket publish tergantung pada psycopg2 Anda tidak boleh menggunakan 'psycopg2-binary' sebagai dependensi modul. Untuk penggunaan produksi Anda disarankan untuk menggunakan distribusi sumber.)Anda harus mengatur postgresql-server-dev-XY, di mana XY versi server Anda, dan itu akan menginstal variabel libpq-dev dan server lainnya pada modul untuk pengembangan sisi server. Dalam kasus saya itu
Dalam kasusmu
sumber
Saya menggunakan lingkungan virtual pada Ubuntu 18.04, dan karena saya hanya ingin menginstalnya sebagai klien, saya hanya perlu melakukan:
Dan diinstal tanpa masalah. Tentu saja, Anda dapat menggunakan biner sebagai jawaban lain, tetapi saya lebih suka solusi ini karena dinyatakan dalam file requirement.txt.
sumber