본문 바로가기
코딩 공부/python

리퀘스트로 인터넷에서 이미지 파일 가져오기

by Camel_coding_food 2022. 2. 9.
반응형

 안녕하세요. 오늘은 "파이썬 증권 데이터 분석" 의 2.8.1절을 배워보았습니다.

import requests

url='https://www.urbanbrush.net/web/wp-content/uploads/edd/2018/06/web-20180604115825983772.png'
r = requests.get(url, stream=True).raw

from PIL import Image
img = Image.open(r)
img.show()
img.save('test.png')

 일단 작성한 코드입니다. 코드 자체는 별로 어렵지 않죠? 근데 저는 예상치 못한곳에서 막혔습니다.

첫번째 줄을 보면 외부 라이브러리인 requests 를 임포트 했습니다. 이 라이브러리를 임포트하고나면 인터넷에서 사진을 가져올 수 있는 get요청을 사용할 수 있죠. 하지만 여기서 문제가 발생했습니다. 

 

이런 오류가 뜨더군요.

pil.unidentifiedimageerror: cannot identify image file <_io.bytesio object at 0x000002058abaf1d0>

뭘까 싶었습니다.

 

스택오버플로우와 여러 블로그를 뒤져본 결과 라이브러리가 엉뚱한 곳에 설치되었다는 의미였습니다. (물론 다른 상황에서도 저런 오류가 뜰 수 있습니다.)

저는 cmd에서 파이썬을 실행한 후, 거기에서 pip install requests를 입력 했습니다. 이게 문제였던거 같습니다.

제가 파이썬을 실행하고 있던 비쥬얼 스튜디오 코드 내의 cmd에서 같은 명령어를 입력하였더니 잘 실행되더군요. 

아마도 cmd 상에선 프로그래밍을 위한 가상환경이 활성화 되어있지 않아서였던거 같습니다. 

 

아니나 다를까 cmd에 다시 파이썬을 실행해보니 (참고로 cmd에서 파이썬을 실행하려면 python 을 치시면 됩니다)

Warning:
This Python interpreter is in a conda environment, but the environment has
not been activated.  Libraries may fail to load.  To activate this environment
please see https://conda.io/activation

이런 경고문구가 있더라고요... 왜 이걸 저는 처음에 보지 못했을까요? 의문입니다.


 결론적으로 해결하긴 했습니다. 아직 초보라 별별 오류를 저 스스로가 다 만들어내는거 같네요 ㅋㅋ

저  코드를 실행해보면 낙타 일러스트가 파이썬 디렉토리 내에 저장되며 사진으로 보여줍니다.

 

6번째 줄부터는 Pillow  패키지를 이용해 객체로 응답결과를 처리하여 이미지를 저장 밑 보여주는 기능입니다.

 

다음번에는 저장된 해당 파일을 복사하고, 둘이 같은지 검증하는 방법을 공부해도록 하겠습니다.

 

 

 

반응형

댓글