Peewee(Python Sqlite ORM)- NameError:未定义名称“SqliteDatabase”

h4cxqtbf  于 2023-04-06  发布在  SQLite
关注(0)|答案(2)|浏览(142)
  • 操作系统Linux Mint 18.3(但版本19也有相同的问题)

已安装Python3和Sqlite3 *
在“pip /pip 3”遇到很多麻烦之后,我设法安装了Peewee
我尝试使用python3 peewee.py运行以下示例脚本,但得到以下错误:

脚本(peewee.py)

from peewee import *

db = SqliteDatabase("people.db")

class Person(Model):
    name = CharField()
    birthday = DateField()

    class Meta:
        database = db # This model uses the "people.db" database.

class Pet(Model):
    owner = ForeignKeyField(Person, backref='pets')
    name = CharField()
    animal_type = CharField()

    class Meta:
        database = db # this model uses the "people.db" database

db.connect()

错误

Traceback (most recent call last):
  File "peewee.py", line 3, in <module>
    from peewee import *
  File "/home/.../peewee.py", line 6, in <module>
    db = SqliteDatabase("people.db")
NameError: name 'SqliteDatabase' is not defined

我已经在google / StackOverflow上做了广泛的研究,但我不能解决这个问题。你能帮我吗?

ss2ws0br

ss2ws0br1#

我尝试了一种不同的方法来解决这个问题......结果发现这个问题并不是特别与peewee有关,而是与python有关。

我将脚本文件命名为peewee.py。

因此,由于脚本from peewee import *的第一行,Python导入了我自己的脚本,而不是真实的的peewee包,因此出现了错误。

解决方案
将脚本文件重命名为其他文件。

  • (评论:......太伤心了......浪费了很多时间在一个愚蠢的新手错误上)*

来源:
Python AttributeError: 'module' object has no attribute 'connect'

u5i3ibmn

u5i3ibmn2#

这个问题出现在vscode中,但没有出现在pycharm中。将整个include-me-library替换为include-each-item

相关问题