강의

멘토링

커뮤니티

Inflearn コミュニティ Q&A

thisisyurimpark のプロフィール画像
thisisyurimpark

投稿した質問数

LangGraphを活用したAI Agent開発(feat. MCP)

2.2 簡単なRetrievalエージェント(feat. PDF前処理のコツ)

pyzerox 유니코드 에러

作成

·

38

0

py-zerox로 문서를 md파일로 바꿀 때 인코딩 관련 에러가 납니다..

 

image.pngimage.png

 

  • 다른 분께서 올려주신 글 보고 print(result) 부분을 아래와 같이 바꿔보기도 했었는데, 에러는 동일하게 나네요...

    •  

      with open("./docs/income_tax.md", "w", encoding="utf-8") as f:
          f.write(str(result))

       

       

  •  

    result = asyncio.run(main())
    

    무엇보다 md파일 자체가 생성되지 않고, 이 부분에서 에러가 나는데, 해결 방법이 없을지 궁금합니다

 

프롬프트엔지니어링llmai-agentlanggraphmcp

回答 2

0

jasonkang님의 프로필 이미지
jasonkang
インストラクター

안녕하세요 혹시 강의에서 활용한 버전을 똑같이 활용하셨을까요? 말씀하신 것처럼 인코딩 문제가 맞는데, asyncio.run()을 통해서 .md가 생성이 되어야 하는거라 with open() 과는 크게 관계가 없는 것 같습니다

asyncio.run() 전에 아래 내용을 한번 추가해서 다시 동작해보시겠어요?

import sys
sys.stdout.reconfigure(encoding="utf-8")
sys.stderr.reconfigure(encoding="utf-8")

result = asyncio.run(main())
Yurim Park님의 프로필 이미지
Yurim Park
質問者

답변 감사드립니다

 

저처럼 문제 겪고 계신 분들 계실까봐 혹시 몰라 남깁니다!

py-zerox 버전도 동일하게 했고, 지웠다가 다시 설치해봐도 유니코드 에러가 떠서 패키지 내부에 들어가봤습니다

<본인가상환경>\Lib\site-packages\pyzerox\core\zerox.py
에 보시면, 아래 코드처럼 encoding="utf-8" 이 없었다는 걸 확인할 수 있었고,

encoding="utf-8" 추가하고 IDE 재시작하니까 정상적으로 돌아갔습니다

  • 추가로 생성된 md 파일이 깨져보인다(euc-kr로 바꿔야 정상적으로 보인다는) 는 글도 본 것 같은데, 이 부분도 같이 해결되었습니다!

        if output_dir:
            result_file_path = os.path.join(output_dir, f"{file_name}.md")
            async with aiofiles.open(result_file_path, "w", encoding="utf-8") as f:
                await f.write("\n\n".join(aggregated_markdown))

0

안녕하세요, 인프런 AI 인턴입니다. Yurim Park님.

문서를 마크다운(.md) 파일로 변환할 때 발생하는 인코딩 오류는 주로 Windows 시스템에서 발생하는 문제입니다. 원인은 기본 인코딩 설정이 ‘cp949’로 되어 있어 UTF-8 문자를 인코딩할 수 없어서 발생하는 것입니다.

해결 방법

  1. 파일 쓰기 인코딩을 명시적으로 설정:

이미 시도해주신 것처럼 open() 함수를 사용할 때 encoding='utf-8'을 명시적으로 설정하는 것이 중요합니다. 함수 내에서 데이터를 다룰 때도 일관되게 UTF-8 인코딩을 사용하는 것이 좋습니다.

   with open("./docs/income_tax.md", "w", encoding="utf-8") as f:
       f.write(str(result))
  1. 출력 인코딩 설정:

Python의 기본 출력 인코딩을 UTF-8로 변경할 수도 있습니다. 이 경우, 터미널이나 IDE에서도 UTF-8을 처리할 수 있도록 설정해야 합니다.

  1. 콘솔 환경 설정:

Windows에서는 콘솔 기본 환경의 인코딩을 UTF-8로 설정하시기 바랍니다. 명령 프롬프트에서 chcp 65001을 입력하여 콘솔의 코드 페이지를 65001(UTF-8)로 변경할 수 있습니다.

   chcp 65001
  1. 라이브러리 사용 시 주의:

만약 사용하는 라이브러리의 내부에서 인코딩 문제가 반복된다면, 해당 라이브러리의 소스 코드나 API 문서를 참고하여 인코딩을 명시적으로 설정할 수 있는지 확인하는 것도 하나의 방법입니다.

  1. 참고 자료:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해 드리고 있습니다.

현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

thisisyurimpark のプロフィール画像
thisisyurimpark

投稿した質問数

質問する