티스토리 뷰

SMALL

 자연어 처리를 위해 IDLE (python3.8)을 설치하고 자연어 처리 라이브러리 KoNLPy를 설치하는 과정 중입니다.

윈도우 코맨드 라인 상태에서 파이썬 설치 폴더로 이용하여 KONLPY을 설치하였는데, 아래와 같은 에러 메시지가 발생하여 해결 방법을 포스팅하게 되었다.

* IDLE은 Python을 실행하는 프로그램으로 파이썬의 통합 개발 환경이다.

* KoNLPy("코엔엘파이"라고 읽습니다)는 한국어 정보처리를 위한 파이썬 패키지입니다.

   즉, 한국어를 처리할 때 주로 KoNLPy를 사용한다.

import konlpy
>>> AttributeError: module 'tweepy'has no attribute 'StreamListener'

 

더 정확히 에러 상황을 말하자면 아래와 같다.

 

 

 

* 해결 과정 없이, 해결 방법을 보고싶다면 아래로 스크롤을 내리면 된다. 

 

 - 해결 과정

AttributeError: module 'tweepy'has no attribute 'StreamListener'

 

일단 이 오류가 발생한 이유부터 알아보았다.
konlpy패키지가 tweepy 모듈의 StreamListener을 가지고 있지 않아 문제가 발생한 것 같다고 생각했다.
tweepy가 설치가 되었는지 IDLE에 'import tweepy' 명령을 실행해 보았다.
import tweepy
>>>

 

위와 같은 에러가 발생하지 않아 tweepy는 설치되었으나 tweepy의 StreamListener에 문제가 있다고 생각하였다.
 
 
일단, tweepy에 대해 잘 알지 못해 tweepy를 검색해보았고, tweepy 웹사이트에 들어갔다.
홈페이지는 아래와 같다.

 

tweepy홈페이지에 'StreamListener'를 검색해보았다.

검색하였더니, Frequently Asked Questions가 서치결과로 떴고, Where did StreamListener go? 라는 물음이기에 클릭하였다.

위와 같은 답변을 받을 수 있는데, 첫 번째 질문에 대한 답변은 오류가 발생한 이유 중에 tweepy가 설치되지 않아 설치해야한다는 말인 듯 하다.

나의 경우, 두번째 답변에 해당했다. 현재 내 윈도우에 설치된 tweepy는 4.0.0버전인데, streamlistener은 tweepy 4.0.0버전에서 stream으로 통합 되었다고 한다.

따라서 konlpy를 업데이트하거나, tweepy를 4.0.0 버전에서 4.0.0아래의 버전으로 바꿔야한다. (=강제로 버전 낮춰주기)

체이지로그에 들어가 4.0.0 아래의 가장 최신버전이 3.10.0이라는 것을 확인하였고, tweepy를 3.10.0버전으로 설치하기로 하였다.   -> 3version이라 서치해서 최신 버전 확인해도 가능하다.

*체인지로그(changelog, 변경 기록)는 웹 사이트나 프로그램을 제작하는 것 같은 어떤 프로젝트를 진행할 때에 변경 사항에 대한 기록이다.

 

 윈도우 cmd에 들어가 이미 설치한 python 설치 폴더로 이동하여 아래와 같은 명령어로 tweepy 3.10.0버전을 설치하였다.

명령어 : python pip install tweepy==3.10.0

'명령어 : python pip install tweepy==3.10.0'를 쳤을 때, 아래와 같이 python: can't open file 'pip' : [Errno 2] No such file or directory로 설치가 되지 않는다면 명령어 python과 pip사이에 '-m'을 쳐서 해결할 수 있다.

1차 명령어 : python pip install tweepy==3.10.0 -> 에러 발생 시

해결 명령어 : python -m pip install tweepy==3.10.0 

 

idle로 import konlpy 코드를 친 결과, 에러 발생 문제를 해결하였다는 것을 알 수 있다.

 

 

- 해결 방법 결론

python pip install tweepy==3.10.0

이것도 안될 시

python -m pip install tweepy==3.10.0

 

* 본 포스팅은 해결을 위한 방법만이 아니라 과정도 포함하였다. 

 과정을 포함한 이유 : 에러가 발생하였을 때, 결론만 보면 그 당시에는 해결할 수 있지만, 같은 에러를 만났을 때 같은 에러인지 모르고 헤맬 수 있음으로 과정을 스스로 찾고 알아두는게 좋다는 것이 나의 주관적인 생각이다. 

 

 

반응형
LIST
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함