Помилка: Немає модуля з назвою psycopg2.extensions


86

Я намагаюся створити базу даних PostgreSQL для мого проекту django, що, я вважаю, я зробив зараз завдяки відповідям на моє останнє запитання Проблеми з налаштуванням бази даних postgreSQL для проекту django . Зараз я намагаюся запустити команду 'python manage.py runserver' у Терміналі, щоб підняти мій localhost, але коли я запускаю команду, я бачу цю відповідь ...

Error: No module named psycopg2.extensions

Я не впевнений, що це означає - я намагався завантажити psycopg2, але, здається, не можу знайти спосіб завантажити psycopg2 за допомогою домашньої писемності. Я спробував 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. Якщо ви можете надати детальну інформацію про свою операційну систему, люди тут можуть вам у цьому допомогти.
Ian Clelland

@IanClelland Дякую Ян. Я працюю на Mac OS X 10.6.8. У мене встановлено доморощену мову, якщо це допомагає.
Джесс

Перевірте, що ви використовуєте перекладач з правої венви.
Alex78191

Відповіді:


167

Перше, що потрібно зробити, це встановити залежності.

sudo apt-get build-dep python-psycopg2

Після цього зайдіть у свій virtualenv і використовуйте

pip install psycopg2-binary

Ці дві команди повинні вирішити проблему.


7
Потрібно сказати, що я більше ніколи не буду користуватися нічим іншим, крім піпа, набагато приємнішого :-)
Гаррі

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під час трийнгу будь-яку з наведених команд
Революція для Моніки

2
@ nba2020: sudo apt-get ...? Це передумови linux (debian / mint / ubuntu) для psycopg2-двійкового файлу. Якщо ви використовуєте windows або щось подібне, вам слід знайти необхідні вимоги до windows для psycopg2-binary і застосувати їх перед тим, як встановлювати psycopg2-binary. Або, можливо (я не впевнений), ви можете пропустити попередні вимоги та встановити psycopg2 замість psycopg2-бінарного файлу, і це може спрацювати. Однак psycopg2 (без -binary) застарілий, тому буде краще, якщо ви спробуєте правильно встановити psycopg2-binary.
mirek

26
pip install psycopg2-binary

Пакет колес psycopg2 буде перейменований з випуску 2.8; щоб продовжувати встановлення з двійкового файлу, використовуйте замість цього "pip install psycopg2-binary". Детальніше див .: http://initd.org/psycopg/docs/install.html#binary-install-from-pypi .


Це працює для мене на ubuntu 18.04 та python 3. Дякую.
Даніель Літтл

Це працює для мене, а також не вимагає жодного дозволу адміністратора
Джанпаоло

Радий, що це допомагає. ^ _ ^
Чарлі 木匠

1
Це мені недостатньо допомагає. Десь в історії я встановив psycopg2 і пізніше (від: -r requirements.txt) належним чином psycopg2-двійковий файл. Все працювало «нормально». Але як тільки я видалив psycopg2 (без -binary), я отримав помилку "Немає модуля з іменем psycopg2.extensions". Видалення / встановлення psycopg2-binary мені не допомагає. Для мене передумови не були встановлені (див. Відповідь @FernandoMunoz: apt install build-dep python-psycopg2). Мені допомогло встановлення цих пакунків Debian та пізніше (!) Psycopg2-binary.
mirek

@mirek Дякую за доповнення.
Чарлі, 木匠



5

Бо macOS Mojaveпросто біжи pip install psycopg2-binary. Для мене чудово працює, версія python ->Python 3.7.2



4

Це те, що допомогло мені в Ubuntu, якщо ваш python встановлювався з установника Ubuntu. Я зробив це після невдалої спроби 'apt-get install' та 'pip install':

У терміналі:

sudo synaptic

то в синаптичному полі пошуку напишіть

psycopg2

вибрати

python-psycopg2

позначте його для встановлення за допомогою клацання правою кнопкою миші та натисніть "застосувати" Звичайно, якщо у вас не встановлено synaptic, спочатку зробіть:

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
Черін


1

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

import psycopg2

...

psycopg2.extensions.AsIs(anap[i])

@fp Дякую за відповідь. Як ви імпортували psycopg2? Чи використовували ви домашнє пиво? Я спробував запустити команду 'import psycopg2' у своєму терміналі, але вона повертає 'ImportError: No module named psycopg2'.
Джесс,

Я використовую ubuntu там, де він готовий до встановлення без компіляції .. Наведений приклад наведено у python. Щоб встановити у вікні, перегляньте stickpeople.com/projects/python/win-psycopg Що потрібно, це встановити його спочатку.
fp

@fp Дякую. Я на Mac - чи існує подібне рішення для Mac?
Джесс

@fb Дякую. Я спробую :)
Джесс

1

Здається, вам це потрібно gcc-4.0, і було б корисно вказати тип і версію ОС.

Можливо, це питання вам трохи допоможе: Встановлення GCC на Mac OS X Leopard без встановлення Xcode

Оновлення

Я користувач Windows, тому не можу перевірити ваші налаштування, але швидкий Google вказав на ще кілька посилань:


Дякую. Я завантажив і встановив 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.