@Semion120

Postgresql не работает с Django? Нельзя установить psycopg2?

Входные данные:
1) Машина: Mac OS Mojave 10.14.6
2) Python последняя версия
3) Django последняя версия
4) Postgresql последняя версия.
5) psycopg2 последняя версия, но это не важно в моем случае.

Цель:
Тестовое задание для собеседования: написать небольшой проект на Django с использованием Postgresql.

Проблема:
Джанго с виртуальным окружением я установил без проблем. Сам Postgresql работает и установился без проблем. Я смог создать пользователя и БД без ошибок.

Попытался установить psycopg2 выдало ошибку строк на 400-500. Ок, я не растерялся и в официальноый документации нашел вариант: установить бинарный вариант. Ок, установил, все ок.
(Установить пытался через pip, brew, easy-install)

Дальше поменял стандартные настройки в settings.py на:
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'labmedia_project',
        'USER': 'labmedia_user',
        'PASSWORD': 'qweasd',
        'HOST': 'localhost',
        'PORT': 5432,
    }
}

Отлично. Написал две модели, применяю makemigrations и мне пишет, что никаких изменений не обнаружено.

Дальше началась череда проб и ошибок. Я посетил в общей сложности 30+ сайтов в том числе зарубежных с надеждой найти ответ. Ничего из предложенного мне не помогло: пути менял, пытался установить через setup.py и тд.

Возможно проблема заключается в том, что в большинстве мануалов пишут решения для Linux. Но и там где пишут для MacOS тоже не помогло.

По поводу бинарного файла: все отлично, но он не работает сам по себе. Установка описана на официальном сайте, но там написан кусок кода:

import psycopg

# Connect to your postgres DB
conn = psycopg.connect("dbname=test user=postgres")

# Open a cursor to perform database operations
cur = conn.cursor()

# Execute a query
cur.execute("SELECT * FROM my_data")

# Retrieve query results
records = cur.fetchall()


Разумеется, нигде не написано куда его вставить. Поэтому я пошел гуглить, но никто не описывает как это использовать, видимо всем и так все понятно.

Вопросы:
1) Как можно исправить ошибку? Все таки хочу полную версию иметь.
2) Как правильно использовать бинарный файл? При обычной установке либы она просто так не работает.

P.S. Скрин и лог ошибки: тут
  • Вопрос задан
  • 569 просмотров
Пригласить эксперта
Ответы на вопрос 2
alternativshik
@alternativshik
pip install psycopg2-binary и все работает из коробки. То, что не найдено изменений при миграции - это к делу не относится. Ты либо свое приложение не добавил в settings, либо надо было прямо указать, в каком приложении искать изменения.
Ответ написан
Комментировать
tumbler
@tumbler Куратор тега Django
бекенд-разработчик на python
Никому больше ваш вопрос не поможет, если вы не приведете ошибку в тексте запроса.

ld: library not found for -lssl

Собственно, всё. Ставьте дев-пакет libssl.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы