首页 > 解决方案 > 无法使用 peewee 连接到 MySQL 数据库

问题描述

在 PyCharm 中,我在我的计算机上使用 pymysql 创建了一个 MySQL 模式。现在我想使用 Peewee 创建表并编写 SQL 查询。但是,在尝试连接数据库时,我总是收到一条错误消息(见下文)。

用户有足够的权限在 DB 模式中创建表,因为它可以完美地与 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”中创建一个新表。但相反,代码在尝试连接到数据库时会引发错误消息:

/lib/x86_64-linux-gnu/librt.so.1' for IFUNC symbol /usr/bin/python3.6:用clock_gettime重新链接'/lib/x86_64-linux-gnu/libsystemd.so.0 '

/usr/bin/python3.6: 重新链接/lib/x86_64-linux-gnu/libudev.so.1' with /lib/x86_64-linux-gnu/librt.so.1' 为 IFUNC 符号 `clock_gettime' 你知道如何解决这个问题吗?

提前致谢

标签: mysqlpython-3.6pymysqlpeewee

解决方案


正如@coleifer 在他的评论中指出的那样,该错误可能与 Python 中的共享库问题有关。设置新的虚拟环境并安装所有必需的软件包后,一切运行良好。

我刚刚添加了能够结束问题的答案。如果@coleifer 将他的评论转换为答案,我将删除我的并接受他的。


推荐阅读