Не удается соединить PostgreSQL с Python3.6, но работает тот же код с Python2.7.Непредвиденная проблема - PullRequest
0 голосов
/ 14 февраля 2019

Я пытаюсь подключиться к БД PostgreSQL с Python в Windows, которая не работает с Python 3.6, в противном случае она успешно выполняется в Python 2.7, остальная часть кода должна быть запущена в 3.6, поэтому это причина для того, чтобы не переходить на более старыйверсия.

Пробовал разные вещи: я пытался удалить экземпляр PORT, чтобы передать входные данные подключения в качестве переменных, я не включил "conn.autocommit = True" ... не повезло.

Я пытался установить psycopg2-binary с использованием pip3: Installation CMD, но при запуске проблема не исчезла.

def conn_to_pgdb():

    conn = psycopg2.connect("dbname='db' user='jon' password='jon'  host='host1234' port='5444'")
    conn.autocommit = True
    cur = conn.cursor()

    create_table = "DROP TABLE IF EXISTS " + con_path + ";" \
                    "CREATE TABLE " + con_path + " (" \
                    "user varchar(30)," \
                    "size varchar(50); "

    cur.execute(create_table)

conn_to_pgdb()

И вот вывод исключения:

psycopg2.OperationalError: не удалось преобразовать имя хоста "host1234" в адрес: неизвестная ошибка сервера

1 Ответ

0 голосов
/ 15 февраля 2019

Решено, и было действительно любопытно.Виртуальная среда, основанная на интерпретаторе Python 3.6, была причиной проблемы.Я только изменил на ИСПОЛЬЗОВАТЬ ТОЛЬКО в качестве интерпретатора основного Python 3.6, не создавая виртуальную среду (как я это делал) ... и теперь работает отлично!

Project interpreter

Спасибо всем за потраченное время,

...