[python] 파이썬 패키지 배포시 의존성 관리 방법

파이썬 패키지를 배포할 때 의존성(dependency)은 중요한 요소입니다. 의존성이란 해당 패키지가 다른 외부 패키지나 라이브러리를 필요로 하는 것을 의미합니다. 패키지를 사용하는 다른 사람들이 의존하는 패키지를 설치하지 않으면 패키지를 사용할 수 없기 때문에 의존성을 관리하는 것은 매우 중요합니다.

이번 포스트에서는 의존성을 관리하는 몇 가지 방법을 소개하겠습니다.

1. requirements.txt 파일 사용하기

requirements.txt 파일은 가장 일반적인 의존성 관리 방법입니다. 이 파일은 패키지가 의존하는 라이브러리와 해당 버전을 명시합니다. 패키지를 설치할 때 pip install -r requirements.txt 명령어를 사용하면 requirements.txt 파일에 명시된 모든 라이브러리와 버전이 설치됩니다.

예를 들어, requests 패키지에 의존하는 패키지를 배포한다고 가정해봅시다.

requests==2.25.0

위와 같이 requirements.txt 파일에 requests 패키지와 버전을 명시하면, 해당 패키지가 설치되지 않았을 경우 pip 명령어로 일괄적으로 설치할 수 있습니다.

2. setup.py 파일 사용하기

setup.py 파일은 파이썬 패키지를 빌드하고 설치하는 데 사용하는 파일입니다. 해당 파일에 의존하는 패키지와 버전을 명시할 수 있습니다. 이렇게 하면 패키지를 설치할 때 의존하는 패키지를 자동으로 설치할 수 있습니다.

아래는 setup.py 파일 예시입니다.

from setuptools import setup

setup(
    name='mypackage',
    version='1.0',
    install_requires=[
        'requests==2.25.0',
    ],
)

install_requires 필드에 requests 패키지와 버전을 명시하면, pip를 통해 패키지를 설치할 때 해당 패키지가 자동으로 설치됩니다.

3. 패키지 관리 도구 사용하기

패키지 관리 도구를 사용하면 의존성을 자동으로 관리할 수 있습니다. 예를 들어, pipenvpoetry와 같은 도구를 사용하면 Pipfile이나 pyproject.toml 파일을 통해 의존성을 관리할 수 있습니다. 이러한 도구는 의존성의 버전 관리, 가상환경 생성 및 패키지 설치 등을 자동으로 처리해줍니다.

결론

이렇게 의존성을 관리하는 방법은 다양하지만, 가장 일반적인 방법으로는 requirements.txt 파일 사용과 setup.py 파일 사용이 있습니다. 어떤 방법을 선택할지는 개발자의 선호도와 프로젝트의 특성에 따라 다를 수 있습니다. 하지만 의존성을 명확히 관리하고 패키지를 배포할 때 사용자에게 가장 편리한 방법을 선택하는 것이 중요합니다.

참고 자료: