Peewee (Python Sqlite ORM) - NameError: имя 'SqliteDatabase' не определено - PullRequest
0 голосов
/ 02 марта 2019

ОС Linux Mint 18.3 (но та же проблема и с версией 19)
Установленные Python3 и Sqlite3

После многих проблем с "pip / pip3" мне удалосьустановить Peewee .

Я попытался запустить следующий пример сценария с python3 peewee.py, но я получаю эту ошибку:

SCRIPT (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, но не могу решить эту проблему.Не могли бы вы помочь мне?

1 Ответ

0 голосов
/ 02 марта 2019

Я попробовал другой подход к проблеме ... Оказывается, проблема связана не с peewee, а с python.

Я назвал файл сценария peewee.py.

Итак, из-за первой строки скрипта from peewee import * Python импортирует мой собственный скрипт вместо реального пакета peewee, поэтому возникает ошибка.

SOLUTION
Переименуйте файл сценария во что-то еще.

(Комментарий: ... Так печально ... много времени было потрачено впустую на глупую ошибку новичка)

Источник:
Python AttributeError: у объекта 'module' нет атрибута 'connect'

...