이번 포스트에서는 mac에서 langchain 사용을 위한 환경 설정을 한땀 한땀 어떤 의미인지 확인하면서 진행해보자.
pyenv
뭐하는 거지?
pyenv는 python의 버전 관리 마법사정도 되는 녀석으로 다음의 기능을 수행할 수 있다.
여러 파이썬 버전 설치 & 관리: 컴퓨터에 파이썬 3.8, 3.9, 3.10, ... 등 여러 버전들을 동시에 설치할 수 있게 한다.
글로벌 버전 전환: 시스템 전체에서 기본으로 사용할 파이썬 버전을 pyenv global 3.9.1 과 같이 쉽게 변경 가능하다.
프로젝트별 버전 지정: 각 프로젝트에서 사용할 버전을 지정할 수 있다.
가상환경 연결: pyenv-virtualenv 같은 플러그인과 함께 사용하면 파이썬 버전별로 가상 환경을 쉽게 만들고 관리할 수 있어 개발 환경 관리가 용이하다.
정리하면 pyenv는 python 개발 시 버전 꼬임 현상을 막아주고 개발 환경을 유연하고 깔끔하게 유지시켜주는 도구이다.
설치
설치는 brew를 통해서 손쉽게 진행 가능하다.
brew update
brew install pyenv
설치된 후 shell에 몇 가지 설정을 추가하자.
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zprofile
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zprofile
# pyenv의 실행 환경 초기화는 대화형 shell인 .zshrc에 설정
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
이제 설정 내용을 반영하기 위해 shell을 다시 실행한다.
exec "$SHELL"
python 설치
맥은 기본으로 3.9.6 내장
기본적으로 mac은 python3라는 이름으로 python을 내장하고 있는데 버전이 3.9.6으로 낮은 편이다.
which python3
/usr/bin/python3
python3 --version
Python 3.9.6
ai등을 위해서는 최신 버전이 필요한데 앞서 설치했던 pyenv를 통해 새로운 버전을 설치해보자.
pyenv를 통한 python 설치
다음 명령을 이용해서 python을 설치하고 설치된 버전을 확인해보자.
> pyenv install 3.11.13 # 현재 poetry가 기본으로 찾는 버전?
python-build: use openssl@3 from homebrew
python-build: use readline from homebrew
Downloading Python-3.13.5.tar.xz...
-> https://www.python.org/ftp/python/3.13.5/Python-3.13.5.tar.xz
Installing Python-3.13.5...
. . .
# global version 설정
> pyenv global 3.11.13
> exec zsh
> python --version
Python 3.11.13
pip3를 통한 패키지 관리
pip(pip installs package)
pip는 python으로 작성한 소프트웨어 패키지를 설치하고 관리하는데 사용되는 표준 패키지 관리 시스템으로 python 개발에 필수적인 도구이다. pip는 pyPi(Python Package Index)에 호스팅 된 수많은 라이브러리와 프레임워크를 쉽게 설치, 업그레이드, 제거할 수 있게 한다.
https://pypi.org/
PyPI · 파이썬 패키지 인덱스
파이썬 패키지 인덱스(PyPI)는 파이썬 프로그래밍 언어를 위한 소프트웨어 리포지터리입니다.
pypi.org
버전의 명시적인 표시를 위해 pip3를 사용하는 것을 권장한다.
기본 명령어
pip를 사용하기 위해서는 대상 라이브러리를 PyPi 사이트에서 검색하는 것이 일반적이다.
PyPI에서 poetry 검색
버전 확인
이후 필요에 따라 install, uninstall, list, show 등 명령을 사용한다. 활용 예와 함께 간단히 살펴보자.
구분
활용 예
설명
install
pip3 install poetry
가장 최신 버전의 패키지 설치
install
pip3 install poetry==1.8.5
특정 버전의 패키지 설치
install
pip3 install poetry pandas numpy
여러 패키지 동시 설치
upgrade
pip3 install --upgrade poetry
해당 패키지 업그레이드
uninstall
pip3 uninstall poetry
해당 패키지 제거
list
pip3 list
현재 설치된 패키지 확인
show
pip3 show poetry
설치된 패키지 정보 확인
poetry 설치 및 확인
다음은 poetry라는 패키지를 설치하고 정보를 확인하는 과정이다.
>pip3 install poetry
. . .
>pip3 list | grep poetry
poetry 2.1.3
poetry-core 2.1.3
poetry
poetry
poetry는 python 프로젝트의 의존성 관리와 패키징을 위한 강력하고 현대적인 도구이다. 기존의 pip, virtualenv, setuptools, requirements.txt 등 여러 도구와 파일을 통합하여 Python 개발 워크 프로로우를 크게 개선하고 단순화 하는 것을 목표로 한다.
https://python-poetry.org/docs/
Introduction | Documentation | Poetry - Python dependency management and packaging made easy
pipx is used to install Python CLI applications globally while still isolating them in virtual environments. pipx will manage upgrades and uninstalls when used to install Poetry. Install pipx If pipx is not already installed, you can follow any of the opti
python-poetry.org
기본 명령어
명령어
설명
poetry new <project_name>
새로운 프로젝트를 생성한다.
poetry install
poetry.lock 또는 pyproject.toml을 기반으로 의존성을 설치한다.
poetry add <package>
대상 package를 설치하고 pyproject.toml에 업데이트 한다.
poetry remove <package>
대상 package를 제거한다.
poetry update
의존성을 업데이트 한다.
poetry run <command>
가상 환경 내에서 명령어를 실행한다.
poetry env activate
가상 환경을 활성화 한다.(기존의 poetry shell이 대체됨)
poetry env activate
프로젝트에 가상 환경을 활성화하는 명령으로 poetry env activate를 사용한다. 이 명령은 현재 쉘 세션이 해당 프로젝트의 가상 환경 내부로 진입하게 된다.
>poetry env activate
Creating virtualenv langchain-kr-3tGp6AFv-py3.11 in /Users/itsmeyjc/Library/Caches/pypoetry/virtualenvs
source /Users/itsmeyjc/Library/Caches/pypoetry/virtualenvs/langchain-kr-3tGp6AFv-py3.11/bin/activate
위 명령은 poetry 2.0.0 부터 도입되었으며 이전에는 poetry shell을 사용했다.
기존에 poetry 기반으로 관리하던 프로젝트를 사용중이라면 패키지를 update 해주는 것이 좋다.
>poetry update
vs-code에서 확인
이제 vs-code에 파이썬 개발을 위한 extension을 설치하자.
마지막으로 대상 프로젝트를 open 후 우측 상단의 [Select Kernel]-[Python Environments]를 차례로 클릭 후 poetry에서 확인한 PoetryEnv를 선택해주면 된다.
poetry env를 선택하자.