Błąd: brak modułu o nazwie psycopg2.extensions

86

Próbuję skonfigurować bazę danych PostgreSQL dla mojego projektu django, co, jak sądzę, zrobiłem teraz dzięki odpowiedziom na moje ostatnie pytanie. Problemy z konfiguracją bazy danych postgreSQL dla projektu django . Próbuję teraz uruchomić polecenie `` python manage.py runningerver '' w Terminalu, aby uruchomić mój localhost, ale kiedy uruchamiam polecenie, widzę tę odpowiedź ...

Error: No module named psycopg2.extensions

Nie jestem pewien, co to oznacza - próbowałem pobrać psycopg2, ale nie mogę znaleźć sposobu na pobranie psycopg2 przy użyciu homebrew. Próbowałem easy_install, pip install i sudo, ale wszystkie zwracają takie błędy ...

Downloading http://www.psycopg.org/psycopg/tarballs/PSYCOPG-2-4/psycopg2-2.4.5.tar.gz
Processing psycopg2-2.4.5.tar.gz
Writing /tmp/easy_install-l7Qi62/psycopg2-2.4.5/setup.cfg
Running psycopg2-2.4.5/setup.py -q bdist_egg --dist-dir /tmp/easy_install-l7Qi62/psycopg2-2.4.5/egg-dist-tmp-PBP5Ds
no previously-included directories found matching 'doc/src/_build'
unable to execute gcc-4.0: No such file or directory
error: Setup script exited with error: command 'gcc-4.0' failed with exit status 1

Jak to naprawić?

Pęto
źródło
Nie masz zainstalowanego kompilatora i potrzebujesz go do zbudowania pakietu psycopg2. Jeśli możesz podać szczegółowe informacje o swoim systemie operacyjnym, osoby tutaj prawdopodobnie mogą Ci w tym pomóc.
Ian Clelland
@IanClelland Dzięki Ian. Jestem na Mac OS X 10.6.8. Mam zainstalowany homebrew, jeśli to pomoże.
Jess,
Sprawdź, jakiego używasz tłumacza z prawej strony.
Alex78191

Odpowiedzi:

167

Pierwszą rzeczą do zrobienia jest zainstalowanie zależności.

sudo apt-get build-dep python-psycopg2

Następnie wejdź do swojego virtualenv i użyj

pip install psycopg2-binary

Te dwa polecenia powinny rozwiązać problem.

Fernando Munoz
źródło
7
Muszę powiedzieć, że nigdy więcej nie użyję niczego innego niż pip, jest o wiele ładniejszy :-)
Harry
11
Dla Pythona 3,sudo apt-get build-dep python3-psycopg2
laike9m
7
Jaki jest sens budowania zależności za pomocą apt, a następnie instalowania za pomocą pip? Co jest nie tak z pojedynczym poleceniem sudo apt-get install python-psycopg2? U mnie to zadziałało.
kdbanman
2
dostałem You must put some 'source' URIs in your sources.listpodczas wypróbowywania któregokolwiek z powyższych poleceń
Revolucion dla Moniki
2
@ nba2020: sudo apt-get ...? Oto wymagania wstępne Linuksa (debian / mint / ubuntu) dla psycopg2-binary. Jeśli używasz okien lub czegoś podobnego, powinieneś znaleźć wymagania wstępne Windows dla psycopg2-binary i zastosować je przed zainstalowaniem psycopg2-binary. A może (nie jestem pewien) możesz pominąć wymagania wstępne i zainstalować psycopg2 zamiast psycopg2-binary i może to zadziałać. Jednak psycopg2 (bez -binary) jest przestarzałe, więc będzie lepiej, jeśli spróbujesz poprawnie zainstalować psycopg2-binary.
mirek
26
pip install psycopg2-binary

Pakiet kół psycopg2 zostanie zmieniony z wersji 2.8; aby kontynuować instalację z pliku binarnego, użyj zamiast tego polecenia „pip install psycopg2-binary”. Aby uzyskać szczegółowe informacje, zobacz: http://initd.org/psycopg/docs/install.html#binary-install-from-pypi .

Charlie 木匠
źródło
U mnie to działa na Ubuntu 18.04 i Pythonie 3. Dzięki.
Danniel Little
To działa dla mnie i również nie wymaga żadnego pozwolenia roota
Gianpaolo
Cieszę się, że to pomaga. ^ _ ^
Charlie 木匠
1
To mi nie pomaga. Gdzieś w historii zainstalowałem psycopg2 i późniejsze (z: -r Requirements.txt) poprawnie psycopg2-binary. Wszystko działało „dobrze”. Ale kiedy odinstalowałem psycopg2 (bez -binary), otrzymałem błąd „Brak modułu o nazwie psycopg2.extensions”. Odinstaluj / zainstaluj psycopg2-binary nie pomaga mi. Dla mnie wymagania wstępne nie zostały zainstalowane (patrz odpowiedź @FernandoMunoz: apt install build-dep python-psycopg2). Pomogło mi zainstalowanie tych pakietów Debiana, a później (!) Psycopg2-binary.
mirek
@mirek Dzięki za komplement.
Charlie 木匠
6

Do Django 2i python 3zainstaluj psycopg2za pomocą pip3:

pip3 install psycopg2
Alex Jolig
źródło
5

Zainstalowałem go pomyślnie za pomocą tych poleceń:

sudo apt-get install libpq-dev python-dev
pip install psycopg2
hassan ketabi
źródło
5

Po macOS Mojaveprostu biegnij pip install psycopg2-binary. U mnie działa dobrze, wersja Pythona ->Python 3.7.2

Kanke
źródło
4

pierwsza instalacja apt-get install python-setuptools

więc spróbuj easy_install psycopg2

user1667633
źródło
4

To pomogło mi w Ubuntu, jeśli twój Python został zainstalowany z instalatora Ubuntu. Zrobiłem to po nieudanej próbie „apt-get install” i „pip install”:

W terminalu:

sudo synaptic

następnie w synaptycznym polu wyszukiwania napisz

psycopg2

wybierać

python-psycopg2

zaznacz go do instalacji, klikając prawym przyciskiem myszy i naciśnij „zastosuj”. Oczywiście, jeśli nie masz zainstalowanego synaptic, najpierw wykonaj:

sudo apt-get install synaptic
arunas_t
źródło
2

W Pythonie 3.4, będąc w środowisku wirtualnym, najpierw upewnij się, że masz zależności kompilacji:

sudo apt-get build-dep python3-psycopg2

Następnie zainstaluj:

pip install psycopg2 
JJSanDiego
źródło
E: You must put some 'source' URIs in your sources.list
Cerin
2

W Alpine Linux (większość kontenerów docker) wykonaj:

apk add postgresql-dev

Następnie:

pip install psycopg2-binary
Jelena Lazarevic
źródło
1

Użyłem rozszerzenia po zaimportowaniu tylko psycopg2:

import psycopg2

...

psycopg2.extensions.AsIs(anap[i])
fp
źródło
@fp Dzięki za odpowiedź. Jak zaimportowałeś psycopg2? Czy używałeś homebrew? Próbowałem uruchomić polecenie „import psycopg2” w moim terminalu, ale zwraca ono „ImportError: brak modułu o nazwie psycopg2”.
Jess
Używam Ubuntu, gdzie jest gotowy do zainstalowania bez kompilacji. Przykład pokazany jest w Pythonie. Aby zainstalować w systemie Windows, spójrz na stickpeople.com/projects/python/win-psycopg. Najpierw musisz go zainstalować.
fp
@fp Dziękuję. Jestem na Macu - czy jest podobne rozwiązanie dla Maca?
Jess,
@fb Dziękuję. Spróbuję :)
Jess
1

Wygląda na to, że potrzebujesz gcc-4.0i byłoby pomocne określenie typu i wersji systemu operacyjnego.

Może to pytanie trochę ci pomoże: Instalowanie GCC na Mac OS X Leopard bez instalowania Xcode

Aktualizacja

Jestem użytkownikiem systemu Windows, więc nie mogę przetestować Twojej konfiguracji, ale szybkie Google wskazało kilka innych linków:

alexandrul
źródło
Dziękuję Ci. Pobrałem i zainstalowałem GCC 10.6, ponieważ mój system operacyjny to 10.6.8. Następnie uruchomiłem easy_install psycopg2, ale zwrócił ten błąd ... "Nie znaleziono wcześniej dołączonych katalogów pasujących do 'doc / src / _build', nie można wykonać gcc-4.0: Brak takiego pliku lub błędu katalogu: Skrypt instalacyjny zakończył działanie z błędem: polecenie ' gcc-4.0 „nie powiodło się ze statusem wyjścia 1”. Czy wiesz, dlaczego tak może być?
Jess,
1

Napotkałem No module named psycopg2.extensionsbłąd podczas próby uruchomienia pip2 install psycopg2na komputerze Mac z systemem Mavericks (10.9). Nie sądzę, aby mój ślad stosu zawierał wiadomość o gcc, a także zawierał wskazówkę:

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'.

Spojrzałem na pg_configpliku w moim Postgres zainstalować i dodać folder zawierający go na mojej ścieżce: /Applications/Postgres.app/Contents/Versions/9.4/bin. Twoja ścieżka może być inna, zwłaszcza jeśli masz zainstalowaną inną wersję Postgres - po prostu grzebałbym, aż znajdziesz bin/folder. Po wykonaniu tej czynności instalacja zadziałała.

Galen Long
źródło
1

spróbuj tego:
sudo pip install -i https://testpypi.python.org/pypi psycopg2 == 2.7b2
.. jest to szczególnie przydatne, jeśli napotkasz błąd jajka

na wystąpieniach aws ec2, jeśli napotkasz błąd gcc; spróbuj tego
1. sudo yum install gcc python-setuptools python-devel postgresql-devel
2. sudo su -
3. sudo pip install psycopg2

janakiram pulipati
źródło
1

Ten pracował dla mnie

python manage.py migrate

shree ..
źródło
1

Miałem taki problem, gdy próbowałem uruchomić skrypt Pythona jako sudo, podczas gdy psycopg2 został zainstalowany przez pip3 do katalogu mojego własnego użytkownika.

Udało mi się rozwiązać problem samodzielnie, usuwając wersję pip3 i instalując ją przez apt:

pip3 uninstall psycopg2
sudo apt install python3-psycopg2
natalka
źródło
0

Sprawdź, czy zainstalowałeś psycopg2, jeśli nie

sudo apt-get install psycopg2

Zainstaluj zależności.

sudo apt-get build-dep python-psycopg2

Te dwa polecenia powinny rozwiązać problem.

Jayakumar Bellie
źródło
0
pip3 install django-psycopg2-extension

Wiem, że się spóźniłem i jest tu wiele odpowiedzi, które również rozwiązują problem. Ale dzisiaj też stanąłem przed tym problemem i nic mi to nie pomaga. Potem znalazłem powyższe magiczne polecenie, które rozwiązuje mój problem :-P. więc publikuję to, ponieważ może to być również dla Ciebie.
Miłego kodowania.

Abhay Kumar
źródło