Pracuję nad projektem Django z virtualenv i łączę go z lokalną bazą danych postgres. kiedy uruchamiam projekt mówi:
ImportError: No module named psycopg2.extensions
następnie użyłem tego polecenia, aby zainstalować
pip install psycopg2
następnie podczas instalacji daje następujący błąd.
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
źródło
źródło
postgresql-server-X.Y
sama instalacja nie pomogłaby, ponieważ to po prostu instaluje pliki binarne, biblioteki i pliki danych serwera, a nie pliki programistyczne (które znajdują się we wspomnianym pakiecie).Odpowiedzi:
Użyj następujących poleceń, to rozwiąże błąd:
następnie strzelaj:
i ostatni:
źródło
sudo apt-get install python-dev
, aby w końcu mógł działaćsudo apt-get install libpq-dev
pracował dla mnie!sudo apt-get install python3-psycopg2
aby dodać do python3Po prostu uruchamiam to polecenie jako root z terminala i problem został rozwiązany,
lub
źródło
libpq-dev
python-dev
postgis
? wootWystarczy zainstalować libpq-dev
źródło
Dla mnie to proste polecenie rozwiązało problem:
Następnie mogę zrobić:
źródło
W przypadku Python 3:
i wtedy mogłem zrobić:
źródło
Zmienili opakowanie psycopg2. Zainstalowanie wersji binarnej naprawiło ten problem. Powyższe odpowiedzi wciąż się utrzymują, jeśli chcesz samodzielnie skompilować plik binarny.
Zobacz http://initd.org/psycopg/docs/news.html#what-s-new-in-psycopg-2-8 .
I http://initd.org/psycopg/docs/install.html#binary-install-from-pypi
Więc jeśli nie musisz kompilować własnego pliku binarnego, użyj:
źródło
psycopg2-binary
nie wolno go używać w produkcji, ponieważ spowoduje to pewne błędy.psycopg2-binary
nie powinien być używany w produkcji: initd.org/psycopg/docs/install.html#binary-install-from-pypi (Skopiowany tekst: Pakiet binarny psycopg2 jest przeznaczony dla początkujących, aby rozpocząć grę z Pythonem i PostgreSQL bez konieczności spełniają wymagania dotyczące kompilacji. Jeśli jesteś opiekunem pakietu publikującego w zależności od psycopg2, nie powinieneś używać „psycopg2-binary” jako zależności modułu. Do użytku produkcyjnego zalecamy użycie dystrybucji źródłowej.)Musisz skonfigurować postgresql-server-dev-XY, gdzie XY wersja twoich serwerów, a zainstaluje libpq-dev i inne zmienne serwera w modułach do programowania po stronie serwera. W moim przypadku tak było
W twoim przypadku
źródło
Korzystałem ze środowiska wirtualnego na Ubuntu 18.04, a ponieważ chciałem tylko zainstalować go jako klienta, musiałem tylko:
I zainstalowany bez problemów. Oczywiście możesz użyć pliku binarnego, jak powiedziano w innych odpowiedziach, ale wolałem to rozwiązanie, ponieważ zostało to określone w pliku wymagania.txt.
źródło