@EVG82

Почему ошибка name 'sqlite3' is not defined?

Создан файл db.py

import sqlite3
from sqlite3 import Error
import os

conn = sqlite3.connect('baza1.db')
cur = conn.cursor()
cur.execute('CREATE TABLE IF NOT EXISTS baza1(user_id INTEGER, username TEXT, mail TEXT)')
conn.commit()


в main
import db есть

при запуске бота получаю ошибку
name 'sqlite3' is not defined

еще код на исполнение:

@dp.message_handler(content_types=['text'])
async def get_message(message):
   if message.text == "Сценарий1":  # нажав сценарий мы должны получить поле для ввода емейл
       await message.answer("Введите электронную почту. Она требуется для корректной работы с вами далее", reply_markup=ReplyKeyboardRemove())
       await NewPost.next()
@dp.message_handler(state=NewPost.email)
async def isValid(message: types.Message, state: FSMContext):
           email = message.text

           await state.update_data(
               {'email': email}
           )

           regex = re.compile(r'([A-Za-z0-9]+[.-_])*[A-Za-z0-9]+@[A-Za-z0-9-]+(\.[A-Z|a-z]{2,})+')

           if re.fullmatch(regex, email):
               print("Valid email")

           #await message.reply('Привет, я эхо-бот, напиши мне что-нибудь!')
           try:
                   conn = sqlite3.connect('baza1.db')
                   cur = conn.cursor()
                   cur.execute('CREATE TABLE IF NOT EXISTS baza1(user_id INTEGER, username TEXT, mail TEXT)')
                   conn.commit()
           except Exception as e:
                   print(e)
                   conn = sqlite3.connect('baza1.db')
                   cur = conn.cursor()
                   cur.execute('CREATE TABLE IF NOT EXISTS baza1(user_id INTEGER, username TEXT, mail TEXT)')
                   conn.commit()


Ошибка в консоле:
File "G:\PYTHON\pythonProject123\main.py", line 103, in isValid
    conn = sqlite3.connect('baza1.db')
NameError: name 'sqlite3' is not defined
Valid email
name 'sqlite3' is not defined


Пишут что в самом Pythone может быть косяк в модуле.
Типа надо пересобрать как то...

и здесь же вопрос

есть модуль PANDAS

может он лучше?
  • Вопрос задан
  • 734 просмотра
Решения вопроса 1
AlexNest
@AlexNest Куратор тега Python
Работаю с Python/Django
1. Импорты так не работают. Все модули нужно подключать напрямую в каждый файл, в котором он вызвывается (плюс явное лучше, чем неявное) - т.е. если модуль sqlite нужен в main.py, то и имортировать его нужно в main.py, вне зависимости от того, подключен он в db.py или нет.
2. Что лучше вилка или кружка? (Иными словами sqlite и pandas занимаются разными вещами)
----
3.В чем смысл db.py, если код из него дублируется в main?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы