[python] Pipenv를 사용하여 패키지 설치 속도 최적화하기

Python 개발을 하다보면 패키지 관리를 위해 Pipenv를 사용하는 경우가 많습니다. 하지만 때로는 패키지 설치가 오래 걸리는 경우가 있어서, 설치 속도를 최적화할 필요가 있습니다. 이번 블로그 포스트에서는 Pipenv를 사용하여 패키지 설치 속도를 최적화하는 방법에 대해 살펴보겠습니다.

1. 사용 가능한 서버 변경하기

Pipenv는 기본적으로 PyPI 서버를 사용하여 패키지를 설치합니다. 하지만 PyPI 서버는 전세계에서 많은 개발자들이 사용하는 만큼, 종종 속도가 느릴 수 있습니다.

이를 해결하기 위해 pipenv의 PIP_INDEX_URL 환경 변수를 변경하여 빠른 서버를 사용할 수 있습니다. 예를 들어, 다음과 같이 ~/.bashrc 파일에 아래 내용을 추가합니다.

export PIP_INDEX_URL=https://pypi.org/simple/

이렇게 설정하면, PyPI 서버 대신에 전세계적으로 사용되는 고속 서버를 사용하여 패키지를 설치할 수 있습니다.

2. 패키지 버전 변경하기

또 다른 설치 속도를 개선하는 방법은 패키지 버전을 변경하는 것입니다. 일부 패키지는 매우 크기가 크거나 의존성 관계 때문에 설치 속도가 느릴 수 있습니다.

이런 경우에는 최신 버전 대신에 더 경량화된 버전을 설치하여 설치 속도를 개선할 수 있습니다. 예를 들어, requests 패키지의 경우 최신 버전인 requests==2.26.0 대신에 requests==2.25.1 버전으로 설치하면 약간의 시간을 절약할 수 있습니다.

3. 캐시 사용하기

매번 패키지를 설치할 때마다 인터넷에서 다운로드하면 시간이 소요됩니다. 이를 해결하기 위해 pipenv는 로컬 디렉토리에 패키지 캐시를 저장할 수 있습니다.

캐시를 사용하려면 PIPENV_CACHE_DIR 환경 변수를 설정해야 합니다. 예를 들어, 다음과 같이 ~/.bashrc 파일에 아래 내용을 추가합니다.

export PIPENV_CACHE_DIR=/path/to/cache/directory

이렇게 설정하면, pipenv는 패키지를 처음 설치한 후에는 로컬 캐시에서 패키지를 가져와서 속도를 개선할 수 있습니다.

4. 병렬 설치하기

Pipenv는 기본적으로 패키지를 순차적으로 설치합니다. 하지만 병렬 설치를 활성화하여 멀티쓰레딩을 사용하면 설치 속도를 크게 향상시킬 수 있습니다.

병렬 설치를 활성화하려면 PIPENV_MAX_CONCURRENCY 환경 변수를 설정합니다. 예를 들어, 다음과 같이 ~/.bashrc 파일에 아래 내용을 추가합니다.

export PIPENV_MAX_CONCURRENCY=8

이렇게 설정하면, pipenv는 최대 8개의 스레드를 사용하여 패키지를 병렬로 설치하여 속도를 향상시킬 수 있습니다.

결론

이번 포스트에서는 Pipenv를 사용하여 패키지 설치 속도를 최적화하는 몇 가지 방법에 대해 알아보았습니다. 서버 변경, 패키지 버전 변경, 캐시 사용, 병렬 설치 등을 통해 개발자들은 더 빠른 패키지 관리 경험을 할 수 있을 것입니다. 자세한 내용은 Pipenv 공식 문서를 참조하시기 바랍니다.