Циклический импорт при попытке импортировать 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 шт):

Автор решения: Sky
import logging

у вас указано в ошибке что нет модуля

→ Ссылка
Автор решения: 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 во что-то другое.

→ Ссылка