Most likely due to a circular import python как исправить
Перейти к содержимому

Most likely due to a circular import python как исправить

  • автор:

Проблема с import в коде на питоне

Есть два кода, из одного импортируется одна переменная в другой, а из второго импортируются функции, но выводит ошибку: AttributeError: partially initialized module ‘function’ has no attribute ‘bubble’ (most likely due to a circular import)

Лучший ответ

Значит ты циклично импортируешь модули друг в друге.

Даниил ВасильевМастер (1013) 2 года назад

Как тогда это исправить? Много перечитал, но так и не понял как это сделать

Vitness Просветленный (35115) Даниил Васильев, можно через третий файл в котором ты будешь импортировать оба других и делать все что надо

Даниил ВасильевМастер (1013) 2 года назад

Уже реишл проблему, спасибо

Остальные ответы

Ошибка циклического импорта

Подумайте над своим кодом и преобразуйте его так, чтобы не нужно было из ваших модулей импортировать друг друга. Разбейте ваш код ещё на отдельные модули, например.

12 дек 2022 в 5:23
@CrazyElf и правда, спасибо.
12 дек 2022 в 9:05

0

Сортировка: Сброс на вариант по умолчанию

Знаете кого-то, кто может ответить? Поделитесь ссылкой на этот вопрос по почте, через Твиттер или Facebook.

  • python
  • telebot
  • python-import
    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.9.3159

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

ImportError: cannot import name (most likely due to a circular import) [duplicate]

I have an issue with relative imports in python. (I really can’t do these imports the other way. ) Structure of my project is similar to this:

 app ├───schemas └───__init__.py └───a.py └───b.py └───c.py └───d.py 

In file a.py are classes A, ABase. Files b.py, c.py, d.py are analogous. init.py

from .a import A from .b import B from .c import C from .d import D 
  1. from .a import A \n from .b import B
  2. from ..schemas import A, B
  3. from . import A, B
    • some abominations of the above

For some reason, option 1 works in different projects and I have no idea why now it doesn’t.

EDIT: I have forgot about file d.py

asked Nov 5, 2022 at 23:01
3 4 4 bronze badges

1 Answer 1

Round Robin import or circular import only occurs when a imports b which imports a which etc.. I’m not sure why the above would cause this unless you’ve omitted something. However one thing you may be able to try is using the typing libraries TYPE_CHECK argument which is always False at runtime and True otherwise.

It’s usually used to get correct type hints while writing but could potentially fix your issue.

How you would do that is as follows:

from typing import TYPE_CHECKING if TYPE_CHECKING: import a # However you chose to import them import b #everything else 

I guess another way to handle it would be to check what modules are loaded and only load if it doesn’t exist.

All of these are crappy solutions, but without knowing exactly what you’ve written and where it’s complaining I can only guess that you’ve forgotten that a , b , or c are also importing d .

TeleBot’ (most likely due to a circular import) Ошибка при создании бота?

C:\pution>Tester.py
Traceback (most recent call last):
File «C:\pution\Tester.py», line 1, in
import telebot
File «C:\pution\telebot.py», line 2, in
bot = telebot.TeleBot(‘ТОКЕН’);
AttributeError: partially initialized module ‘telebot’ has no attribute ‘TeleBot’ (most likely due to a circular import)

Я уже без понятия что делать.
Хотел создать простого бота, но уже голова кругом идёт, помогите будьте добры.

=======ПОЛНЫЙ КОД =====
import telebot

bot = telebot.TeleBot (‘ТОКЕН’)

#привязка кнопок
@bot.message_handler(commands=[‘start’])
@client.message_handler(commands = [‘get_info’, ‘info’])
def get_user_info(message):
markup_inline = types.InlineKeyboardMarkup()
item_yes = types.InlineKeyboardButton( text = ‘Да’, callback_data = ‘yes’)
item_no = types.InlineKeyboardButton( text = ‘НЕТ’, callback_data = ‘no’)

markup_inline.add(item_yes, item_no)
client.send_message(message.chat.id, ‘Хотите Купить приватку?’,
reply_markup = markup_inline
)
#название кнопок
@client.callback_query_handler(func = lambda call: True )
def answer(call):
if call.data == ‘yes’:
markupp_reply = types.ReplyKeyboardMarkup(resize_keyboard = True)
item_id = types.KeyboardButton(‘Купить приват’)
item_username = types.KeyboardButton(‘Информация’)

markupp_reply.add(item.id, item_username)
client.send_message(call.message.chat.id, ‘Нажмите кнопка’,
reply_markup = markupp_reply
)
elif call.data == ‘no’:
pass

@client.message_handler(content_type = [‘text’])
def get_text(message):
if message.text == ‘Купить приват’:
client.send_message(message.chat.id, f’Стоимость и тд’)

  • Вопрос задан более двух лет назад
  • 1839 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *