인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

김지환님의 프로필 이미지

작성한 질문수

RAG를 활용한 LLM Application 개발 (feat. LangChain)

3.1.2 수강하면서 OpenAI API를 결제하기 싫은경우 (feat. ChatUpstage)

upstage api 연결

해결된 질문

작성

·

121

0

안녕하세요 강사님 🙂


저는, 이번 강의를 통해 ipynb로 처음 실습을 해봅니다.

실습 중 처음부터 막히는 부분이 발생해서 질문을 남깁니다.

 

실습환경

  • Mac OS

  • Python 3.13

  • pyenv virtualenv

     

작성한 코드

%pip install langchain-upstage python-dotenv

발생한 오류

Collecting langchain-upstage Using cached langchain_upstage-0.6.0-py3-none-any.whl.metadata (3.3 kB) Requirement already satisfied: python-dotenv in /Users/dot/.pyenv/versions/3.10/envs/inflearn-llm-application/lib/python3.13/site-packages (1.0.1) Requirement already satisfied: langchain-core<0.4.0,>=0.3.29 in /Users/dot/.pyenv/versions/3.10/envs/inflearn-llm-application/lib/python3.13/site-packages (from langchain-upstage) (0.3.34) Requirement already satisfied: langchain-openai<0.4,>=0.3 in /Users/dot/.pyenv/versions/3.10/envs/inflearn-llm-application/lib/python3.13/site-packages (from langchain-upstage) (0.3.4) Collecting pypdf<5.0.0,>=4.2.0 (from langchain-upstage) Using cached pypdf-4.3.1-py3-none-any.whl.metadata (7.4 kB) Requirement already satisfied: requests<3.0.0,>=2.31.0 in /Users/dot/.pyenv/versions/3.10/envs/inflearn-llm-application/lib/python3.13/site-packages (from langchain-upstage) (2.32.3) Collecting tokenizers<0.20.0,>=0.19.1 (from langchain-upstage) Using cached tokenizers-0.19.1.tar.gz (321 kB) Installing build dependencies ... Getting requirements to build wheel ... Preparing metadata (pyproject.toml) ... error: subprocess-exited-with-error × Preparing metadata (pyproject.toml) did not run successfully. │ exit code: 1 ╰─> [6 lines of output] Checking for Rust toolchain.... Cargo, the Rust package manager, is not installed or is not on PATH. This package requires Rust and Cargo to compile extensions. Install it through the system's package manager or via https://rustup.rs/ [end of output]
...
 note: This is an issue with the package mentioned above, not pip. hint: See above for details. Note: you may need to restart the kernel to use updated packages. 
Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings...

문제 해결

제가 영어를 못해서 claude한테 질문해보니까, Rust와 Cargo가 설치되어 있지 않다고 하더군요.

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

source "$HOME/.cargo/env"

해당 명령어로 rust를 설치 한 뒤, 수행하면 될거라고 하는데... 너무 번거로워서 다른 방법으로 빌드된 버전을 미리 설치하도록 수행했습니다.

%pip install --only-binary :all: langchain-upstage python-dotenv

궁금한 점

  • langchain-openai를 설치할 때는 문제가 없던데, 왜 langchain-upstage는 이런 문제가 발생하나요..?

     

답변 2

0

강병진님의 프로필 이미지
강병진
지식공유자

안녕하세요 지환님!

일단 저는 겪어본적 없는 에러라서 저도 검색을 해봤는데요, 인프런 AI 인턴의 답변대로, langchain-upstage 의 패키지 내 뭔가 있는게 아닌가 추측만 됩니다.

다만 일반적인 파이썬 패키지를 활용할 때 발생하는 에러는 아니라서, AI 인턴의 답변대로 pip install --only-binary :all: langchain-upstage 를 한번 시도해보시고, 그래도 에러가 발생한다면 저도 조금 더 디버깅을 시도해봐야 할 것 같습니다!

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. 김지환님.

강의를 실습하는 과정에서 발생한 문제에 대해 문의 주셔서 감사합니다. 주로 Python 패키지를 설치할 때 발생하는 이슈와 관련된 문제 해결 방법을 살펴보겠습니다.

문제 설명

  • langchain-upstage를 설치하면서 Rust와 Cargo가 필요하다는 메시지를 받으셨습니다. 이는 해당 패키지가 일부 C 혹은 Rust로 작성된 확장 기능을 포함하고 있기 때문에 발생할 수 있는 문제입니다. 이러한 경우, 패키지를 설치하기 위해 Rust 툴체인이 필요합니다.
  • 반면 langchain-openai는 이러한 의존성이 없어서 RUST 관련 설치가 필요하지 않았던 것입니다.

해결 방법

  1. Rust와 Cargo 설치:

    • pip로 설치되는 대부분의 패키지는 Python으로 작성되어 있지만, 특정 기능의 성능 향상을 위해 Rust, C 등의 언어로 작성된 컴파일러가 필요한 경우가 있습니다. Rust와 Cargo는 이러한 상황에서 필요한 설치 도구이며, 다음과 같은 명령어로 설치할 수 있습니다:
      
      curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
      source "$HOME/.cargo/env"
      

    • 설치 후, 다시 pip로 langchain-upstage를 설치하세요.
  2. –only-binary 옵션 사용:

    • 일부 패키지들은 바이너리 릴리즈로 제공되며, 소스에서 컴파일하지 않아도 설치할 수 있습니다. --only-binary :all: 옵션은 가능하다면 바이너리 파일로만 패키지를 설치하도록 강제하는 옵션입니다. 다만, 현재 상황에서는 이 옵션 사용 시 바이너리 패키지가 존재하지 않아 해당 문제를 해결하지 못할 수 있습니다.
  3. 패키지 관리자 이용:

    • MacOS 사용자의 경우 Homebrew와 같은 패키지 관리자를 사용하여 Rust를 쉽게 설치할 수 있습니다:
      
      brew install rust
      

추가적인 참고 사항

  • Rust 자체 설치가 불편할 경우, 해당 기능을 사용하는 다른 환경(예: Docker, Virtual Machine)을 사용하여 환경 설정을 시도해보는 것도 하나의 방법입니다.

좀 더 자세한 갤러리나 문제 해결법에 관해서는 stack overflow의 유사한 문제에 대한 토의 등이 참고될 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.