[py] pip 환경 배포하기

@codemaru · June 08, 2016 · 2 min read

파이썬을 사용하면 귀찮은 작업 중에 하나가 환경 바뀌면 라이브러리를 일일이 수동으로 설치해줘야 한다는 점이다. 운영체제를 새로 설치해도 그렇고, 다른 사람에게 알려줄 때에도 그렇다. 그래서 도커를 써야 하나 싶다가도 뭔가 모기 잡으려고 화염방사기 쓰는 것 같은 느낌도 들고, 결정적으로 도커를 모르기도 하고 ㅋㅋ~

물론 이런 경우만 있는 것은 아니다. 이번에 2.7에서 3.5로 갈아타는 것과 같이 다른 환경으로 이동하는 경우도 있다. 이때에는 진짜 정말 찾아서 설치하는 수 밖에 없다. 그래서 스크립트 돌려보고 오류가 발생할 때마다 찾아서 설치하고 있었다. 그런데 "~ 수 밦에 없다"는 나의 착각이었다. pip는 이미 퐌타스틱한 기능을 내장하고 있었다. 잠시 살펴보도록 하자.

pip freeze > requirements.txt

위와 같은 커맨드를 날리는 순간 pip로 설치된 모든 라이브러리의 목록이 requirements.txt에 저장된다. 내가 갈아탄 3.5에서 실행해보니 아래와 같이 나왔다.

click==6.6
Flask==0.11.1
itsdangerous==0.24
Jinja2==2.8
MarkupSafe==0.23
pycrypto==2.6.1
PyExcelerate==0.6.7
PyMySQL==0.7.5
requests==2.10.0
six==1.10.0
slackclient==1.0.0
websocket-client==0.37.0
Werkzeug==0.11.10

이제는 이 requirements.txt만 있으면 일일이 그걸 설치하고 있을 필요가 없다. 바로 "install -r"이라는 마법같은 커맨드가 있기 때문이다. 아래와 같이 입력하면 일괄 설치된다. 넘나 편한것. pip 설치 지원 안 하는 라이브러리는 버려도록 해야겠다.

pip install -r requirements.txt
@codemaru
돌아보니 좋은 날도 있었고, 나쁜 날도 있었다. 그런 나의 모든 소소한 일상과 배움을 기록한다. 여기에 기록된 모든 내용은 한 개인의 관점이고 의견이다. 내가 속한 조직과는 1도 상관이 없다.
(C) 2001 YoungJin Shin, 0일째 운영 중