inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

파이썬/장고로 웹채팅 서비스 만들기 (Feat. Channels) - 기본편

프로젝트 생성 및 ASGI 개발서버 구동

[해결됨] 6:00 마지막 pip install -r requirements.txt 오류

해결된 질문

2782

박찬진

작성한 질문수 9

0

requirements.txt 토씨 하나 안틀리고 작성하고,

pip install -r requirements.txt를 하면

 

return data.decode(

UnicodeDecodeError: 'cp949' codec can't decode byte 0xec in position 2: illegal multibyte sequence

오류가 떠서 검색 결과, 파일 읽을 때는 file_open = open("file path", 'r', encoding="UTF-8") 이렇게 하라는 글이 많았는데, 해당 f.read하는 라이브러리 찾아가서(req_file.py)

try:
    with open(url, "rb", encoding="UTF-8") as f: 

이렇게 바꿔주고 실행해도 에러 나오구요(ValueError: binary mode doesn't take an encoding argument)...

어디서는 또

pip install pygetwindow==0.0.1 

하고 다시 해보면 되었다는 글이 있어서 해보았는데도 안되네요 ㅠㅠ

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

앜ㅋㅋㅋ

https://www.inflearn.com/questions/180989/pip-install-r-requirements-txt-%EC%98%A4%EB%A5%98

여기 말대로 주석은 지우고 실행해보니까 됩니다!!!

그런데 궁금한 점) 왜 강사님 컴퓨터에선 되고 내 컴퓨터에서는 안되는지... 올해 새로 산 노트북인데 ㅠㅠ

django python django-channels

답변 1

1

이진석

안녕하세요.

이는 requirements.txt 파일 내에 한글이 있는 데, 한글 윈도우의 python에서는 텍스트 파일의 디폴트 인코딩을 cp949로 디코딩하는 데, 원본 파일은 utf8이기에 인코딩이 맞지 않아 발생하는 오류입니다.

그래서 파이썬에서는 한글 텍스트 파일을 열고 쓸 때에는 open("경로", "rt", encoding="utf8") 과 같이 encoding을 꼭 지정하기를 추천하는 편입니다.

이 오류를 해결하기 위해, requirements.txt 파일 내의 한글을 모두 제거하셔도 되지만, 한글을 사용하기 위해 requirements.txt 파일의 첫 줄에 아래 줄을 추가하시면, pip 내에서 requirements.txt 파일을 utf8로 인지하여 디코딩하게 됩니다. // pip 코드의 auto_decode 함수 코드를 살펴보고, 저도 방금 알게된 인코딩 지정방법입니다.

# coding: utf-8

그러면 한글 윈도우에서도 requirements.txt 파일에 한글 주석이 포함되어있더라도, 설치가 잘 될 것입니다.

맥이나 리눅스는 디폴트 인코딩이 utf8이기 때문에, # coding: utf-8을 넣지 않으셔도 무방합니다.

그리고, open 시에 encoding 옵션을 쓰실려면 file mode가 text 여야 합니다. 그런데 rb가 지정되어있고 b가 binary모드를 의미하므로 이때에는 encoding 옵션을 지정해서는 안 됩니다. 그래서 ValueError가 발생한 것입니다.

오류로 불편을 끼쳐드려 죄송하고, 제보해주신 내용을 강의 노트에도 추가해두었습니다.

감사합니다. :-)

0

이진석

방금 강의 영상에도 인코딩에 대한 추가 설명을 추가하고, 다운받으시는 강의자료에도 해당 슬라이드를 수정하여 재업로드해두었습니다.

image

감사합니다.

유저목록 확인 문제 질문드립니다.

0

168

2

안녕하세요 선생님,

0

96

1

하나의 채팅방만 만들어보려고 하는데 잘 안되고 있습니다.

0

108

1

도커와 연동 관련 질문드립니다.

0

208

3

채팅방 참여자 목록 - 채팅방 입장/퇴장 실시간 이벤트 처리

0

171

2

안녕하세요, onopen() 문제로 질문드립니다.

0

141

2

Consumer Instances 관련 질문 있습니다.

0

74

2

안녕하세요, 요청은 채널스에서 먼저 받고, http 요청은 장고를 통해서 처리한다고 하셨는데요.

0

80

2

기능 구현 질문 드립니다.

0

117

1

git에 있는 코드를 다운 받아 실행 해봤는데 에러가 났습니다.

0

160

2

ValueError: No route found for path 'ws/liveblog/'.

0

137

2

지정 경로에 템플릿 파일 만드는 단축키가 뭔가요?

0

125

2

채팅 내역을 영구적으로 저장하고 싶습니다.

0

92

1

질문이 있습니다.

0

165

1

구독 채팅 구현

0

215

1

헷갈려서 질문드립니다.

0

360

2

@login_required 장식자를 적용한후에는 로그인을 성공하면 채팅방으로 어떻게 이동을 하는 건가요?

1

277

1

docker run -d --restart always --name redis7 --publish 6379:6379 redis:7

0

265

1

websocket 자바스크립트 클라이언트 구현?

0

364

1

메세지 리액션 : 좋아요. 질문 드립니다.

0

361

1

{유저명}님이 메세지 입력 중입니다. 메세지 질문드립니다.

0

617

1

채팅 로비에서 유저수 노출을 위하여

0

329

1

채팅방에서 마지막 유저가 나가면 채팅방 자동 삭제 질문드립니다.

0

436

1

동기방식의 consumer 클래스와 비동기방식의 consumer클래스의 차이가 뭔지 궁금합니다.

0

429

1