파이썬 의존성 패키지 추출/ 복원하기
파이썬으로 프로그램을 작성했다면, 이 프로그램이 다른 사람들의 PC 혹은 다른 환경에서도 정상적으로 실행될 수 있도록 해줘야 할 것입니다.
내 로컬에서 개발하여 동작한다고 하더라도, 그것이 다른 환경에서 동작한다는 보장이 되지 않기 때문입니다.
내 개발환경에서 동작하는 프로그램이 다른 사람의 환경에서 동작하지 않는 이유는,
- 파이썬 버전이 맞지 않거나
- 라이브러리가 없거나, 버전이 충돌해서
등의 이유가 있을 것입니다.
본 글에서는, 라이브러리의 의존성을 컨트롤 하는 방법에 대해 정리하고자 합니다.
가정
일단, 파이썬 개발환경이 virtualenv/pyenv 등을 통해 가상화 되어 있다고 가정합니다.
독립적인 환경이 구축되어 있으면, 해당 프로젝트에 사용된 정말 필요한 라이브러리만 특정하여 관리/ 추출하기 용이합니다.
의존성 라이브러리 목록 확인하기
$ pip freeze
이 명령어를 수행하면, 현재 설치된 라이브러리 목록을 확인할 수 있습니다.
click==7.1.2
discord==1.7.3
discord.py==1.7.3
geomet==0.2.1.post1
idna==3.3
jsonpickle==2.0.0
multidict==5.2.0
powernad==0.8.0
그런데, 이렇게 눈으로만 확인하면 재사용할 수 없기 때문에 보통은 파일로 이 목록을 저장합니다.
$ pip freeze > requirements.txt
이렇게 하면, 의존성을 갖고 있는 라이브러리 목록이 requirements.txt로 저장됩니다.
라이브러리 설치/ 복원하기
만약, 신규 개발환경에 위의 파일로 라이브러리를 설치해 줘야 한다면 아래와 같이 실행하세요.
$ pip install -r requirements.txt
외부 파이썬 프로젝트를 설치하여, 빌드하는 경우도 보통 위와 같은 가이드라인이 함께 포함되어 있을 것입니다.
따라서, 나의 프로젝트를 외부에 공개해야 한다면 위와 같이 requirements.txt를 작성하여 공개하고, README.md 등에 이 프로젝트를 설치/실행하는 법에 대해서도 안내 글을 남기는 것이 좋습니다.