Pip와 Viertualenv 추가 설정

../_images/34018732105_f0e6758859_k_d.jpg

pip 를 위해 가상 환경의 활성화가 필요하다

개발 환경을 깔끔하게 유지하고 다른 프로젝트의 필요 라이브러리와 분리하려면 가상 환경을 사용하는 방법이 최고라는 사실이 이제는 분명해졌습니다.

여러 다른 프로젝트에서 작업을 시작할 때 특정 프로젝트로 돌아올 때마다 그 프로젝트의 가상 환경을 활성화 해야한다는 사실을 기억하기란 어렵습니다. 그러다보니 가상 환경에서 프로젝트의 패키지를 설치하는 것으로 착각하면서 글로벌 환경에서 패키지를 설치하기 일쑤입니다. 결국 시간이 지남에 따라 글로벌 패키지 목록이 지저분해질 수 있습니다.

pip install 을 실행할 때 패키지를 확실하게 활성화 된 가상 환경에 설치하려면 ~/.bashrc 파일에 아래의 줄 1개를 추가해보세요.

export PIP_REQUIRE_VIRTUALENV=true

이 변경 사항을 저장하고 source ~/.bashrc 명령어로 ~/.bashrc 파일을 불러오면 pip는 더이상 가상 환경이 아닌 곳에 패키지를 설치하도록 두지 않습니다. 가상 환경 밖에서 pip install 를 실행하려 하면 pip는 패키지를 설치하려면 가상 환경 활성화가 필요하다고 친절하게 알려줄 것입니다.

$ pip install requests
Could not find an activated virtualenv (required).

pip.conf 파일 또는 pip.ini 을 수정해도 이러한 환경 구성을 할 수 있습니다. pip.conf 은 Unix와 Mac OS X 운영체제에서 사용됩니다. 위치는 아래와 같습니다:

$HOME/.pip/pip.conf

마찬가지로 pip.ini 은 Windows 운영체제에서 사용합니다. 위치는 아래와 같습니다:

%USERPROFILE%\pip\pip.ini

pip.conf 이나 pip.ini 가 저 위치에 없다면 운영체제에다가 저 이름의 새 파일을 만들어도 됩니다.

설정 파일이 이미 있다면 아래의 라인을 [global] 밑에다 설정해서 가상 환경 활성화가 필요하다고 하면 됩니다.

require-virtualenv = true

설정 파일이 없다면 새 파일을 만들고 그 새 파일에 아래의 라인을 추가하세요:

[global]
require-virtualenv = true

물론 어떤 (보통 여러 다른 프로젝트에서 공통적으로 사용하는) 패키지들은 글로벌하게 설치해야 하기도 합니다. 이럴때면 ~/.bashrc 파일에 아래의 라인을 추가하면 됩니다:

gpip() {
    PIP_REQUIRE_VIRTUALENV="" pip "$@"
}

변경 사항을 파일에 저장하고 ~/.bashrc 파일을 불러오고 나면 gpip install 로 패키지를 글로벌하게 설치할 수 있습니다. 함수명은 원하는대로 바꿔도 됩니다. pip로 패키지를 글로벌하게 설치하려면 그 함수명을 사용해야 한다는 것만 기억하면 됩니다.

나중에 사용할 수 있도록 패키지 캐싱하기

개발자라면 모두 좋아하는 라이브러리가 있을 것이고, 여러 다양한 프로젝트에서 작업한다 할지라도 사용이 겹치는 라이브러리가 있을 것입니다. 예를 들어 requests 라이브러리는 아마 여러 프로젝트에서 사용하고 있을 겁니다.

새 프로젝트를 시작할 때마다 (그러니까 새 가상 환경 말입니다) 같은 패키지와 라이브러리를 다시 다운로드 할 필요는 전혀 없습니다. 다행스럽게도 pip 6.0버전부터는 pip가 기본적으로 캐싱 매커니즘 을 가지고 있어서 추가 설정을 할 필요가 없습니다.

옛날 버전의 pip를 사용하고 있다면 다음과 같이 이미 설치된 패키지를 재사용 할 수 있습니다.

UNIX 시스템에서라면 .bashrc.bash_profile 파일에 아래 라인을 추가할 수 있습니다.

export PIP_DOWNLOAD_CACHE=$HOME/.pip/cache

경로는 (쓰기 권한이 있는 곳이라면) 아무 경로나 원하는대로 설정하실 수 있습니다. 이 라인을 추가한 후 source your .bashrc (혹은 .bash_profile) 하면 됩니다.

위 설정을 할 수 있는 다른 방법도 있습니다. 사용하는 시스템에 따라 pip.confpip.ini 파일일 수 있습니다. Windows를 사용한다면 pip.ini 파일의 [global] 아래 줄에 다음과 같은 라인을 추가할 수 있습니다.

download-cache = %USERPROFILE%\pip\cache

비슷하게 UNIX에서도 pip.conf 파일의 [global] 라인 아래에 다음과 같이 추가하면 됩니다:

download-cache = $HOME/.pip/cache

캐시를 저장할 경로는 어디든 좋지만, pip.confpip.ini 파일이 있는 폴더 안에 새 폴더를 만드시기를 추천드립니다. 새 경로를 만드는 본인의 술법이 못 미더우시다면 그냥 이 가이드에 나오는 경로를 사용하세요. 잘 될겁니다.