Проблема с подключением к PostgreSQL из сценария Python, использующего psycopg2. Что мне не хватает?Python

Программы на Python
Ответить
Anonymous
 Проблема с подключением к PostgreSQL из сценария Python, использующего psycopg2. Что мне не хватает?

Сообщение Anonymous »

У меня есть довольно простая установка PostgreSQL. Я пытаюсь использовать функцию jsonschematoddl для создания таблиц из файла схемы JSON.
Я могу нормально загрузить файл схемы, но мое соединение с локальная база данных PostgreSQL всегда выдает ошибку 403 «Запрещено», что, как я полагаю, является проблемой аутентификации/авторизации в моей конфигурации.
Я пробовал подключиться как с помощью psycopg2, так и с помощью sqlalchemy, но оба ведут себя одинаково. Я могу нормально подключиться через psql как мой пользователь и пользователь postgres.
Я пробовал несколько вариантов URI, но безрезультатно.Я явно что-то упускаю, поэтому любые советы и предложения приветствуются.
Вот мой скрипт Python:
import json
with open('/Users/n123/sauce_device.json') as f:
schema = json.load(f)

pg_uri = 'postgresql://postgres@127.0.0.1:5432/postgres'

# With psycopg2
import psycopg2
conn = psycopg2.connect(pg_uri)
#conn = psycopg2.connect(dbname='postgres', user='n123', host='localhost', password='power')

# OR with sqlalchemy
# from sqlalchemy import create_engine
# conn = create_engine(pg_uri).raw_connection()

from jsonschema2ddl import JSONSchemaToDatabase

translator = JSONSchemaToDatabase(
schema,
root_table_name='sauce_devices',
)

translator.create_tables(conn)
translator.create_links(conn)
translator.analyze(conn)

conn.comit()

Вот ошибка, которую я получаю при запуске скрипта:
Traceback (most recent call last):
File "/Users/n123/schema-to-ddl.py", line 18, in
translator = JSONSchemaToDatabase(
^^^^^^^^^^^^^^^^^^^^^
File "/Users/n123/.pyenv/versions/3.12.1/lib/python3.12/site-packages/jsonschema2ddl/translators.py", line 59, in __init__
self._validate_schema()
File "/Users/n123/.pyenv/versions/3.12.1/lib/python3.12/site-packages/jsonschema2ddl/translators.py", line 73, in _validate_schema
metaschema_uri = urlopen(metaschema_uri).url
^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/n123/.pyenv/versions/3.12.1/lib/python3.12/urllib/request.py", line 215, in urlopen
return opener.open(url, data, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/n123/.pyenv/versions/3.12.1/lib/python3.12/urllib/request.py", line 521, in open
response = meth(req, response)
^^^^^^^^^^^^^^^^^^^
File "/Users/n123/.pyenv/versions/3.12.1/lib/python3.12/urllib/request.py", line 630, in http_response
response = self.parent.error(
^^^^^^^^^^^^^^^^^^
File "/Users/n123/.pyenv/versions/3.12.1/lib/python3.12/urllib/request.py", line 559, in error
return self._call_chain(*args)
^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/n123/.pyenv/versions/3.12.1/lib/python3.12/urllib/request.py", line 492, in _call_chain
result = func(*args)
^^^^^^^^^^^
File "/Users/n123/.pyenv/versions/3.12.1/lib/python3.12/urllib/request.py", line 639, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 403: Forbidden


Подробнее здесь: https://stackoverflow.com/questions/793 ... -what-am-i
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»