인프런 커뮤니티 질문&답변

주노님의 프로필 이미지
주노

작성한 질문수

파이썬으로 뭘 만들지? 남박사의 파이썬 알쓸파잡

Flask 를 활용하여 웹 QR코드 생성기 만들기

web_qrmaker.py

작성

·

250

1

png_as_base64_str()은 파이썬의 3.10에서는 안되나요?

생성버튼을 누르면

No module named 'png'라는 메시지가 뜨네요.

찾아보니까 png_as_base64_str()은 deprecate되었다라고 하네요.

답변 3

0

주노님의 프로필 이미지
주노
질문자

알겠습니다. 이것 저것 다 해보겠습니다. 감사합니다

남박사님의 프로필 이미지
남박사
지식공유자

현재 사용은 가능하니 그냥 쓰셔도 되고 함수를 변경하면 위에서 처럼 replace() 를 통해 변경해서 사용하시면 될 듯 합니다. 더 궁금하신 사항은 언제든 질문 주시기 바랍니다.

0

남박사님의 프로필 이미지
남박사
지식공유자

png_as_base64_str()가 deprecate 되었다고 하시는 거보니

pyqrcode 라이브러리가 아닌 pyqrcodeng 라이브러리를 사용하고 계신가 아닌가 생각됩니다.

그림에서 처럼 현재 python 3.10.2 버전 pyqrcode 던 pyqrcodeng 던 둘다 사용하는데 문제는 없어 보입니다. 

문서상에는 deprecate 되었다고 하나 현재 버전에서 사용은 잘 되고 있습니다만 강좌에서는 pyqrcode로 작성되었기 때문에 라이브러리 차이에 따른 다른 문제가 발생하는 부분에 대해서 모두 확인할수는 없을듯 합니다.

문서상 png_as_base64_str() 함수는 png_data_uri() 함수로 대체 된다고 하니 [pyqrcodeng 공식문서] 를 참고 해보시는것도 좋을듯 합니다. 위 그림의 선택영역을 보면 png_data_uri() 함수는 "data: image/png;base64," 를 포함해서 리턴해주므로 강좌의 코드에서 이 부분을 맞게 수정해야 할 것으로 보입니다. 아니면 강좌처럼 똑같이 나오게 하려면 

b = qrcode.png_data_uri(scale=5).replace("data:image/png;base64,", "")

이런식으로 replace 해서 문자열을 없애버리는 방법도 있을것 같습니다.

 

더 궁금하신 사항이 있으시면 새로운 질문을 남겨주시면 감사하겠습니다. 그래야 저한테 알림이 오거든요 ㅎㅎ

 

0

남박사님의 프로필 이미지
남박사
지식공유자

"파이썬에서 QR 코드 생성해보기" 강의에서 말씀드린 내용인데 놓치셨나 봅니다.

pyqrcode 에서 png 관련 기능을 사용하기 위해선 pypng 라이브러리가 설치 되어있어야 합니다. 

 

pip install pypng

 

로 설치하시면 됩니다.

주노님의 프로필 이미지
주노

작성한 질문수

질문하기