Не удалось подключиться к базе данных MySQL с помощью peewee

В PyCharm я создал схему MySQL, используя pymysql на своем компьютере. Теперь я хочу использовать Peewee для создания таблиц и написания SQL-запросов. Однако я всегда получаю сообщение об ошибке (см. ниже) при попытке подключения к БД.

Пользователь имеет достаточные права для создания таблиц в схеме БД, так как он безупречно работает с pymysql (создание таблиц, а также схема работает нормально). Я просмотрел похожие вопросы на Stackoverflow и не смог найти подобную проблему. Более того, эта проблема не встречалась ни в одном из руководств, которые я просматривал, поэтому я не совсем уверен, что может быть причиной ошибки. Ниже приведен минимальный рабочий пример.

    from peewee import*
    import peewee

    user = 'root'
    password = 'root'
    db_name = 'peewee_demo'

    # The schema with the name 'peewee_demo' exists
    db = MySQLDatabase(db_name, user=user, passwd=password)


    class Book(peewee.Model):
        author = peewee.CharField()
        title = peewee.TextField()

        class Meta:
            database = db


    db.connect()  # Code fails here
    Book.create_table()
    book = Book(author="me", title='Peewee is cool')
    book.save()
    for book in Book.filter(author="me"):
        print(book.title)

Я ожидаю, что приведенный выше код подключится к MySQL, а затем создаст новую таблицу в схеме peewee_demo. Но вместо этого код выдает сообщение об ошибке при попытке подключения к БД:

/usr/bin/python3.6: повторно связать '/lib/x86_64-linux-gnu/libsystemd.so.0' с /lib/x86_64-linux-gnu/librt.so.1' for IFUNC symbol clock_gettime'

/usr/bin/python3.6: перелинковать /lib/x86_64-linux-gnu/libudev.so.1' with /lib/x86_64-linux-gnu/librt.so.1' для символа IFUNC `clock_gettime' У вас есть идеи, как решить эту проблему?

заранее спасибо


person Stefan    schedule 28.10.2019    source источник
comment
Вау, у вас какие-то проблемы с общей библиотекой или что-то в этом роде. Я не уверен, какой дистрибутив/оборудование Linux вы используете, но похоже, что Python неправильно связывается с общими библиотеками.   -  person coleifer    schedule 28.10.2019
comment
У меня убунту 18.04. Я сталкивался с подобными ошибками ранее, вызванными некоторыми простыми ошибками в моем коде (не связанными с peewee), приводящими к бесконечной рекурсии, поэтому я надеялся, что эти ошибки выше также были вызваны некоторыми ошибками в моем коде, но если это не так, мне нужно исследовать. Большое спасибо за ваш комментарий!   -  person Stefan    schedule 29.10.2019
comment
@coleifer Оказывается, обновление до Python 3.7 (вероятно, установка Python 3.6 с нуля также должна была сработать) решило проблему для меня - большое спасибо за то, что указали мне правильное направление.   -  person Stefan    schedule 29.10.2019
comment
@coleifer: если вы превратите свой комментарий в ответ, я могу проголосовать за него и отметить мою проблему как решенную   -  person Stefan    schedule 29.10.2019


Ответы (1)


Как указал @coleifer в своем комментарии, ошибка, вероятно, была связана с проблемой общей библиотеки в Python. После настройки новой виртуальной среды и установки всех необходимых пакетов все работает отлично.

Я просто добавил ответ, чтобы иметь возможность закрыть вопрос. Если @coleifer превратит свой комментарий в ответ, я удалю свой и приму его.

person Stefan    schedule 30.10.2019