일전에 근무했던 환경에서는 폐쇄망이었고, 일주일에 한 번 인터넷을 열어줬기 때문에 해당일에 모든 패키지를 설치하거나, pypi에서 검색해서 whl 을 업로드해서 수동으로 설치하는 방식으로 패키지를 설치해왔다(해당 방식은 아래 블로그를 첨부한다.) 이런 경우에는 패키지 간 버전 충돌이 발생하기도 하는데, 역시 수동으로 노가다를 뛰었다.....

 

[python] 파이썬 패키지 오프라인 설치 (수동 설치)

offline 또는 폐쇄망 환경에서는 pip로 외부 패키지를 받아올 수 없다이럴 때, 수동으로 설치하는 두 가지 방법이 있다(두번째 방법을 추천★)   먼저, 첫 번째 방법● pypi 사이트에서 패키지 파일

spectrum20.tistory.com

 

이런 문제를 해결하고자 나온게 Poetry이다. Poetry는 pyproject.toml 파일을 이용해서 버전 관리를 한다. 굳이 비교하자면 requirement.txt 를 처음부터 작성해나간다...정도로 생각하면 될 듯하다. 일반적으로 패키지 간 dependency 는 버전 3.12 이상~ 과 같은 형태로 요구하기 때문에 이 점을 활용한 것 같다. 

 

나는 이 환경을 window에서도 openai 를 이용한 agent 시스템 구축을 위해 사용해보게 되었다. 처음에는 굳이..?싶었지만 쓰다보니 꽤 편리하다. 개발 환경을 공유하자면, window11에서 ubuntu 24.04.1 LTS 를 설치해서 wsl 환경에서 진행하였다. 이 과정도 역시 인터넷 블로그를 참고하였다(내가 본 블로그 링크를 못 찾겠으나...친철한 블로거들이 많아서 검색하면 금방 따라할 수 있다.)

 

 

서론이 길었다. 그럼 이제 설치 방법을 공유한다.

1. 먼저 powershell 을 관리자 권한으로 실행하고 wsl 검색어를 입력한다. 다음과 같이 경로가 바뀌면 wsl 이 잘 설치된 것이다.

2. poetry 설치 역시 해당 wsl 환경에서 진행했다. 나는 agent 시스템을 만들고자 했기 때문에, 폴더명을 _agent_system으로 했지만, 다른 이름으로 설정해도 무방하다. 

# 폴더 생성
mkdir _agent_system

# 해당 폴더로 이동
cd _agent_system

# Poetry 설치
curl -sSL https://install.python-poetry.org | python3 -

# path 설정
echo 'export PATH="/home/$USER/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

설치가 완료되면 poetry --version 을 검색해서 올바르게 설치되었는지 확인한다. 

3. poetry init : 이제 실제 dependency 를 위한 작업을 진행한다. 각 항목에 대해 답하면 되는데, 괄호 안에 디폴트 세팅으로 진행하고자 하면 그냥 엔터 누르면 된다. 

pyproject 설정

위 그림과 같이 설정하였고, 프로젝트 폴더를 들어가보면 해당 내용들이 포함되어 있는 pyproject.toml이 나타나 있을 것이다!

4. 이제 poetry add 명령어를 통해 필요한 패키지를 설치할 수 있다. 나는 일단 아래와 같은 패키지를 설치하고자 했고, 이후에 프로젝트를 진행하면서 추가 패키지 설치도 당연히 가능하다. 

# python = "^3.9"
# openai = "^1.12.0"
# langchain = "^0.1.9"
# langchain-openai = "^0.0.8"
# faiss-cpu = "^1.7.4"
# datasets = "^2.18.0"
# pandas = "^2.2.1"
# numpy = "^1.26.4"
# tqdm = "^4.66.2"

 

아래와 같이 poetry add 명령어로 패키지를 설치할 수 있다. toml 을 이후 직접 수정할 수도 있는데, 그렇게 되면 4-1을 따르면 된다. 

4-1. toml 파일을 직접 수정한 경우, poetry lock 이 선행되어야 한다. 즉, 본인이 수정한 정보가 dependency 상 문제가 없어야 한다는 것이다. dependency 상 문제가 없으면 lock 파일이 생기고, 이제 poetry install 을 통해 toml 내 모든 패키지가 설치가 된다. 

poetry lock
poetry install

 

써 놓고 보니 별거 없는 사용기였지만 새로운 도구를 사용하는 것은 항상 어렵기에......새로운 환경에서 또 사용할 일이 있으면 참고하고자 작성해두었다. 

즐거운 개발생활이 되길 바라며:)

+ Recent posts