해결됨) most likely due to a circular import

하얀설표 | 작성시간 2024.12.13. | 조회 70

에러 내용

Traceback (most recent call last):
  File "..\PYTHON\TEST\regex vs bs4\rss.py", line 5, in <module>
    from bs4 import BeautifulSoup
  File "..\Python\Python311\site-packages\bs4\__init__.py", line 37, in <module>
    from .builder import (
  File "..\Python\Python311\site-packages\bs4\builder\__init__.py", line 9, in <module>
    from bs4.element import (
  File "..\Python\Python311\site-packages\bs4\element.py", line 13, in <module>
    from bs4.formatter import (
  File "..\Python\Python311\site-packages\bs4\formatter.py", line 1, in <module>
    from bs4.dammit import EntitySubstitution
  File "..\Python\Python311\site-packages\bs4\dammit.py", line 12, in <module>
    from html.entities import codepoint2name
  File "..\PYTHON\TEST\regex vs bs4\html.py", line 5, in <module>
    from bs4 import BeautifulSoup
ImportError: cannot import name 'BeautifulSoup' from partially initialized module 'bs4' (most likely due to a circular import) (..\Python\Python311\site-packages\bs4\__init__.py)


공감 : 0

댓글 (1개)



댓글을 작성하려면 로그인해야합니다.



[글쓴이] 하얀설표

2024.12.13. 10:34
(2024.12.13. 수정됨)

질문자 채택


문제의 원인은 import한 모듈에서 사용하는 모듈명과, 자신이 작성한 파이썬 코드 파일의 파일명이 일치하는 것에 있습니다.

에러 내용의 중간에는 다음과 같은 내용을 확인할 수 있는데,

  File "..\Python\Python311\site-packages\bs4\dammit.py", line 12, in <module>
    from html.entities import codepoint2name
  File "..\PYTHON\TEST\regex vs bs4\html.py", line 5, in <module>
    from bs4 import BeautifulSoup

이 메세지는 bs4 모듈의 dammit.py에서 파이썬 내장 모듈인 html을 import하는 것에서 에러가 발생했다는 것을 알려줍니다.
html 모듈의 entities를 파일에서 code2point2name를 가져오는데, 파이썬 내장 모듈인 html을 가져오지 않고, 따로 작성한 html.py라는 이름의 파일을 import해 문제가 발생했습니다.

문제가 되는 html.py의 파일명을 html이 아닌 다른 이름으로 변경하면 문제가 해결됩니다.

공감 : 0