SharedIT | 묻고 답하기(AMP)

파이썬 오류

import matplotlib.pylplot as plt했더니


Traceback (most recent call last):

File "<pyshell#0>", line 1, in <module>

import matplotlib.pylplot as plt

File "C:\Users\김민경\AppData\Local\Programs\Python\Python38-32\lib\site-packages\matplotlib\__init__.py", line 109, in <module>

from . import _api, _version, cbook, docstring, rcsetup

File "C:\Users\김민경\AppData\Local\Programs\Python\Python38-32\lib\site-packages\matplotlib\cbook\__init__.py", line 31, in <module>

from matplotlib import _api, _c_internal_utils

ImportError: cannot import name '_api' from partially initialized module 'matplotlib' (most likely due to a circular import) (C:\Users\김민경\AppData\Local\Programs\Python\Python38-32\lib\site-packages\matplotlib\__init__.py)


이렇게 오류뜨네요 왜그런가요

Tags : 태그가 없습니다.

1개의 답변이 있습니다.

wansoo
  0 추천 | 2년 이상 전

from matplotlib import _api, _c_internal_utils

ImportError: cannot import name '_api' from partially initialized module 'matplotlib' (most likely due to a circular import) (C:\Users\김민경\AppData\Local\Programs\Python\Python38-32\lib\site-packages\matplotlib\__init__.py


에 원인이 나와 있는 걸로 보이네요.

matplotlib 모듈로 부터 _api를 import할 수 없는데, 순환 참조로 때문인 경우가 대부분이라고 되어 있고요.

순환 참조라는 것은 2개의 모듈이 서로 참조하고 있는 경우를 말하고요.

갑이 을을 참조하고 있는데, 을이 다시 갑을 참조하라는 식의 참조가 순환 참조가 되겠고요.


_api 와  _c_internal_utils 모듈이 서로 참조하고 있는건 아닌지 확인해 볼 필요가 있을 것 같네요.


그리고...

python 버전에 따라 import에 문제가 생기는 경우도 있기 때문에 가능한 최신 버전의 파이썬을 이용하는 게 좋을 것 같고요.


폴더명에 한글 사용시 encoding에 따라 오류가 발생할 수도 있기 때문에 잘 모를 경우에는 가급적 한글 이름이 없는 폴더가 사용에 오류를 줄일 수 있을거라 생각되고요.


참고로...

파이썬의 2 버전과 3 버전에 차이가 많기 때문에

2 버전에 맞는 문법인지, 3 버전에 맞는 문법인지도 잘 고려해서 코딩을 하셔야 합니다.

무조건 최신 버전이라 해서 2버전의 문법을 사용하고 있으면서 3버전의 최신 버전을 사용하는 건 맞지 않고...

2버전의 문법을 사용한다면 2버전의 최신 버전을,

3버전의 문법을 사용한다면 3버전의 최신 버전을 사용하는게 오류를 해결 할 수 있는 방법이 될 수 있을 거라 생각됩니다.