Циклический импорт при попытке импортировать aiogram
у нас есть следующий код
from aiogram import Bot, Dispatcher, executor, types
token = 'TOKEN'
bot = Bot(token = token)
dp = Dispatcher(bot)
@dp.message_handler(commands = 'start')
async def start(message: types.Message):
await message.answer('Hallo')
executor.start_polling(dp)
и следующие ошибки
Traceback (most recent call last):
File "/Users/nikitabaslykov/Documents/Python/TelegrammBots/token.py", line 1, in <module>
from aiogram import Bot, Dispatcher, executor, types
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/aiogram/__init__.py", line 6, in <module>
import asyncio
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/asyncio/__init__.py", line 8, in <module>
from .base_events import *
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/asyncio/base_events.py", line 18, in <module>
import concurrent.futures
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/concurrent/futures/__init__.py", line 8, in <module>
from concurrent.futures._base import (FIRST_COMPLETED,
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/concurrent/futures/_base.py", line 7, in <module>
import logging
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/logging/__init__.py", line 26, in <module>
import sys, os, time, io, re, traceback, warnings, weakref, collections.abc
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/traceback.py", line 5, in <module>
import linecache
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/linecache.py", line 11, in <module>
import tokenize
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/tokenize.py", line 35, in <module>
from token import *
File "/Users/nikitabaslykov/Documents/Python/TelegrammBots/token.py", line 1, in <module>
from aiogram import Bot, Dispatcher, executor, types
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/aiogram/types/__init__.py", line 1, in <module>
from . import base
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/aiogram/types/base.py", line 31, in <module>
log = logging.getLogger('aiogram')
AttributeError: partially initialized module 'logging' has no attribute 'getLogger' (most likely due to a circular import)
nikitabaslykov@MacBook-Pro-Nikita TelegrammBots % /usr/local/bin/python3 /Users/nikitabaslyk
ov/Documents/Python/TelegrammBots/token.py
Traceback (most recent call last):
File "/Users/nikitabaslykov/Documents/Python/TelegrammBots/token.py", line 1, in <module>
from aiogram import Bot, Dispatcher, executor, types
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/aiogram/__init__.py", line 6, in <module>
import asyncio
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/asyncio/__init__.py", line 8, in <module>
from .base_events import *
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/asyncio/base_events.py", line 18, in <module>
import concurrent.futures
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/concurrent/futures/__init__.py", line 8, in <module>
from concurrent.futures._base import (FIRST_COMPLETED,
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/concurrent/futures/_base.py", line 7, in <module>
import logging
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/logging/__init__.py", line 26, in <module>
import sys, os, time, io, re, traceback, warnings, weakref, collections.abc
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/traceback.py", line 5, in <module>
import linecache
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/linecache.py", line 11, in <module>
import tokenize
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/tokenize.py", line 35, in <module>
from token import *
File "/Users/nikitabaslykov/Documents/Python/TelegrammBots/token.py", line 1, in <module>
from aiogram import Bot, Dispatcher, executor, types
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/aiogram/types/__init__.py", line 1, in <module>
from . import base
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/aiogram/types/base.py", line 31, in <module>
log = logging.getLogger('aiogram')
AttributeError: partially initialized module 'logging' has no attribute 'getLogger' (most likely due to a circular import)
nikitabaslykov@MacBook-Pro-Nikita TelegrammBots % /usr/local/bin/python3 /Users/nikitabaslyk
ov/Documents/Python/TelegrammBots/token.py
Traceback (most recent call last):
File "/Users/nikitabaslykov/Documents/Python/TelegrammBots/token.py", line 1, in <module>
from aiogram import Bot, Dispatcher, executor, types
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/aiogram/__init__.py", line 6, in <module>
import asyncio
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/asyncio/__init__.py", line 8, in <module>
from .base_events import *
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/asyncio/base_events.py", line 18, in <module>
import concurrent.futures
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/concurrent/futures/__init__.py", line 8, in <module>
from concurrent.futures._base import (FIRST_COMPLETED,
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/concurrent/futures/_base.py", line 7, in <module>
import logging
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/logging/__init__.py", line 26, in <module>
import sys, os, time, io, re, traceback, warnings, weakref, collections.abc
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/traceback.py", line 5, in <module>
import linecache
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/linecache.py", line 11, in <module>
import tokenize
nikitabaslykov@MacBook-Pro-Nikita TelegrammBots % /usr/local/bin/python3 /Users/nikitabaslyk
ov/Documents/Python/TelegrammBots/token.py
Traceback (most recent call last):
File "/Users/nikitabaslykov/Documents/Python/TelegrammBots/token.py", line 1, in <module>
from aiogram import Bot, Dispatcher, executor, types
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/aiogram/__init__.py", line 6, in <module>
import asyncio
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/asyncio/__init__.py", line 8, in <module>
from .base_events import *
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/asyncio/base_events.py", line 18, in <module>
import concurrent.futures
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/concurrent/futures/__init__.py", line 8, in <module>
from concurrent.futures._base import (FIRST_COMPLETED,
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/concurrent/futures/_base.py", line 7, in <module>
import logging
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/logging/__init__.py", line 26, in <module>
import sys, os, time, io, re, traceback, warnings, weakref, collections.abc
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/traceback.py", line 5, in <module>
import linecache
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/linecache.py", line 11, in <module>
import tokenize
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/tokenize.py", line 35, in <module>
from token import *
File "/Users/nikitabaslykov/Documents/Python/TelegrammBots/token.py", line 1, in <module>
from aiogram import Bot, Dispatcher, executor, types
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/aiogram/types/__init__.py", line 1, in <module>
from . import base
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/aiogram/types/base.py", line 31, in <module>
log = logging.getLogger('aiogram')
AttributeError: partially initialized module 'logging' has no attribute 'getLogger' (most likely due to a circular import)
nikitabaslykov@MacBook-Pro-Nikita TelegrammBots % /usr/local/bin/python3 /Users/nikitabaslyk
ov/Documents/Python/TelegrammBots/token.py
Traceback (most recent call last):
File "/Users/nikitabaslykov/Documents/Python/TelegrammBots/token.py", line 1, in <module>
from aiogram import Bot, Dispatcher, executor, types
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/aiogram/__init__.py", line 6, in <module>
import asyncio
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/asyncio/__init__.py", line 8, in <module>
from .base_events import *
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/asyncio/base_events.py", line 18, in <module>
import concurrent.futures
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/concurrent/futures/__init__.py", line 8, in <module>
from concurrent.futures._base import (FIRST_COMPLETED,
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/concurrent/futures/_base.py", line 7, in <module>
import logging
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/logging/__init__.py", line 26, in <module>
import sys, os, time, io, re, traceback, warnings, weakref, collections.abc
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/traceback.py", line 5, in <module>
import linecache
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/linecache.py", line 11, in <module>
import tokenize
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/tokenize.py", line 35, in <module>
nikitabaslykov@MacBook-Pro-Nikita TelegrammBots % /usr/local/bin/python3 /Users/nikitabaslyk
ov/Documents/Python/TelegrammBots/token.py
Traceback (most recent call last):
File "/Users/nikitabaslykov/Documents/Python/TelegrammBots/token.py", line 1, in <module>
from aiogram import Bot, Dispatcher, executor, types
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/aiogram/__init__.py", line 6, in <module>
import asyncio
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/asyncio/__init__.py", line 8, in <module>
from .base_events import *
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/asyncio/base_events.py", line 18, in <module>
import concurrent.futures
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/concurrent/futures/__init__.py", line 8, in <module>
from concurrent.futures._base import (FIRST_COMPLETED,
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/concurrent/futures/_base.py", line 7, in <module>
import logging
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/logging/__init__.py", line 26, in <module>
import sys, os, time, io, re, traceback, warnings, weakref, collections.abc
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/traceback.py", line 5, in <module>
import linecache
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/linecache.py", line 11, in <module>
import tokenize
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/tokenize.py", line 35, in <module>
from token import *
File "/Users/nikitabaslykov/Documents/Python/TelegrammBots/token.py", line 1, in <module>
from aiogram import Bot, Dispatcher, executor, types
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/aiogram/types/__init__.py", line 1, in <module>
from . import base
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/aiogram/types/base.py", line 31, in <module>
log = logging.getLogger('aiogram')
AttributeError: partially initialized module 'logging' has no attribute 'getLogger' (most likely due to a circular import)
установку я гарантированно провёл правильно, сам компьютер и компилятор видят библиотеку, однако же на выходе получаю такую ошибку. В чём тут проблема и как её исправить?
Ответы (2 шт):
Автор решения: insolor
→ Ссылка
Обратите внимание на этот кусок стектрейса:
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/linecache.py", line 11, in <module>
import tokenize
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/tokenize.py", line 35, in <module>
from token import *
File "/Users/nikitabaslykov/Documents/Python/TelegrammBots/token.py", line 1, in <module>
from aiogram import Bot, Dispatcher, executor, types
Здесь импортируется модуль tokenize из стандартной библиотеки, потом он пытается импортировать модуль token (опять же из стандартной библиотеки), но в итоге импортируется модуль token.py из вашего проекта, он опять заново все пытается импортировать, опять импорт доходит до tokenize и импорта token, и все зацикливается.
Просто переименуйте token.py во что-то другое.