Ошибка: нет модуля с именем psycopg2.extensions


86

Я пытаюсь настроить базу данных PostgreSQL для своего проекта django, что, как мне кажется, я сделал сейчас, благодаря ответам на мой последний вопрос. Проблемы с настройкой базы данных postgreSQL для проекта django . Теперь я пытаюсь запустить команду python manage.py runserver в Терминале, чтобы запустить мой локальный хост, но когда я запускаю команду, я вижу этот ответ ...

Error: No module named psycopg2.extensions

Я не уверен, что это означает - я попытался загрузить psycopg2, но не могу найти способ загрузить psycopg2 с помощью homebrew. Я пробовал easy_install, pip install и sudo, но все возвращают такие ошибки ...

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

Как это исправить?


У вас не установлен компилятор, и он нужен вам для сборки пакета psycopg2. Если вы можете предоставить подробную информацию о своей операционной системе, люди здесь, вероятно, смогут вам в этом помочь.
Ян Клелланд

@IanClelland Спасибо, Ян. Я использую Mac OS X 10.6.8. Я установил homebrew, если это поможет.
Джесс

Проверьте, какой переводчик вы используете от нужного venv.
Alex78191

Ответы:


168

Первое, что нужно сделать, это установить зависимости.

sudo apt-get build-dep python-psycopg2

После этого войдите в свой virtualenv и используйте

pip install psycopg2-binary

Эти две команды должны решить проблему.


7
Я должен сказать, что больше никогда не буду использовать ничего, кроме pip, это намного лучше :-)
Гарри

11
Для Python 3,sudo apt-get build-dep python3-psycopg2
laike9m

7
Какой смысл создавать зависимости с помощью apt, а затем устанавливать с помощью pip? Что не так с единственной командой sudo apt-get install python-psycopg2? У меня это сработало.
kdbanman

2
получил You must put some 'source' URIs in your sources.listпри выполнении любой из вышеперечисленных команд
Revolucion для Моники

2
@ nba2020: sudo apt-get ...? Это предварительные требования linux (debian / mint / ubuntu) для psycopg2-binary. Если вы используете окна или что-то подобное, вы должны вместо этого найти предварительные требования Windows для psycopg2-binary и применить их перед установкой psycopg2-binary. Или, может быть (я не уверен) вы можете пропустить предварительные условия и установить psycopg2 вместо psycopg2-binary, и это может сработать. Однако psycopg2 (без -binary) устарел, поэтому будет лучше, если вы попытаетесь правильно установить psycopg2-binary.
mirek 03 фев.2020,

26
pip install psycopg2-binary

Пакет psycopg2 wheel будет переименован в версии 2.8; чтобы продолжить установку из двоичного файла, используйте вместо этого команду «pip install psycopg2-binary». Подробнее см. Http://initd.org/psycopg/docs/install.html#binary-install-from-pypi .


У меня это работает на ubuntu 18.04 и python 3. Спасибо.
Дэнниел Литтл

Это работает для меня и также не требует каких-либо прав root
Джанпаоло

Рад, что помог. ^ _ ^
Чарли 木匠

1
Это мне мало помогает. Где-то в истории я установил psycopg2 и более поздние версии (из: -r requirements.txt) правильно psycopg2-binary. Все заработало "нормально". Но как только я удалил psycopg2 (без -binary), я получил ошибку «Нет модуля с именем psycopg2.extensions». Удаление / установка psycopg2-binary мне не помогает. Для меня предварительные условия не были установлены (см. Ответ @FernandoMunoz: apt install build-dep python-psycopg2). Мне помогла установка этих пакетов Debian и более поздних (!) Двоичных файлов psycopg2.
mirek 03 фев.2020,

@mirek Спасибо за дополнение.
Чарли 木匠



5

Для macOS Mojaveпросто запустить pip install psycopg2-binary. У меня отлично работает, версия python ->Python 3.7.2


4

первая установка apt-get install python-setuptools

тогда попробуйте easy_install psycopg2


4

Это то, что помогло мне в Ubuntu, если ваш питон был установлен из установщика Ubuntu. Я сделал это после безуспешной попытки 'apt-get install' и 'pip install':

В терминале:

sudo synaptic

затем в синаптическом поле поиска напишите

psycopg2

выберите

python-psycopg2

отметьте его для установки, щелкнув правой кнопкой мыши и нажав «Применить». Конечно, если у вас не установлен синаптик, сначала выполните:

sudo apt-get install synaptic

2

В python 3.4, находясь в виртуальной среде, сначала убедитесь, что у вас есть зависимости сборки:

sudo apt-get build-dep python3-psycopg2

Затем установите его:

pip install psycopg2 

E: You must put some 'source' URIs in your sources.list
Cerin


1

Я использовал расширение только после импорта psycopg2:

import psycopg2

...

psycopg2.extensions.AsIs(anap[i])

@fp Спасибо за ответ. Как вы импортировали psycopg2? Вы использовали домашнее пиво? Я пробовал запустить команду «import psycopg2» в своем терминале, но она возвращает «ImportError: нет модуля с именем psycopg2».
Джесс

Я использую ubuntu, где он готов к установке без компиляции. Показанный пример написан на python. Чтобы установить в Windows, посмотрите stickpeople.com/projects/python/win-psycopg. Вам нужно сначала установить его.
фп

@fp Спасибо. Я на Mac - есть ли подобное решение для Mac?
Джесс

@fb Спасибо. Я попробую :)
Джесс

1

Кажется, тебе нужно gcc-4.0 , и было бы полезно указать тип и версию вашей ОС.

Возможно, этот вопрос вам немного поможет: Установка GCC в Mac OS X Leopard без установки Xcode

Обновить

Я пользователь Windows, поэтому я не могу проверить вашу настройку, но быстрый гугл указал еще на несколько ссылок:


Спасибо. Я загрузил и установил GCC 10.6, так как моя ОС - 10.6.8. Затем я запустил easy_install psycopg2, но он вернул эту ошибку ... «ранее включенные каталоги не были найдены, соответствующие 'doc / src / _build', неспособные выполнить gcc-4.0: Нет такой ошибки файла или каталога: сценарий установки завершился с ошибкой: команда ' gcc-4.0 'не удалось со статусом выхода 1 ". Вы знаете, почему это могло быть?
Джесс

1

Я столкнулся с No module named psycopg2.extensionsошибкой при попытке запустить pip2 install psycopg2на Mac под управлением Mavericks (10.9). Я не думаю, что моя трассировка стека содержала сообщение о gcc, но также содержала подсказку:

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

Я посмотрел на pg_configфайл в моей Postgres установки и добавила папку , содержащую его к моему пути: /Applications/Postgres.app/Contents/Versions/9.4/bin. Ваш путь может быть другим, особенно если у вас установлена ​​другая версия Postgres - я бы просто ковырялся, пока вы не нашли bin/папку. После этого установка заработала.


1

попробуйте это:
sudo pip install -i https://testpypi.python.org/pypi psycopg2 == 2.7b2
.. это особенно полезно, если вы ошибкой яйца

на экземплярах aws ec2, если вы столкнулись с ошибкой gcc; попробуйте это
1. sudo yum install gcc python-setuptools python-devel postgresql-devel
2. sudo su -
3. sudo pip install psycopg2



1

У меня возникла такая проблема при попытке запустить скрипт python как sudo, в то время как psycopg2 был установлен через pip3 в каталог моего собственного пользователя.

Мне удалось решить эту проблему, удалив версию pip3 и просто установив ее через apt:

pip3 uninstall psycopg2
sudo apt install python3-psycopg2


0

Проверьте, установили ли вы psycopg2, если нет

sudo apt-get install psycopg2

Установите зависимости.

sudo apt-get build-dep python-psycopg2

Эти две команды должны решить проблему.


0
pip3 install django-psycopg2-extension

Я знаю, что опаздываю, и здесь есть много ответов, которые также решают проблему. Но сегодня я тоже столкнулся с этой проблемой, и все это мне не помогает. Затем я нашел указанную выше волшебную команду, которая решает мою проблему: -P. так что я публикую это, поскольку это может быть случай и для вас.
Удачного кодирования.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.