[python] Pipenv를 사용하여 분산 패키지 배포하기

파이썬의 패키지 관리를 위해 pipenv를 사용하는 것은 매우 편리합니다. pipenvpipfilepipfile.lock을 사용하여 패키지 의존성을 추적하고 가상 환경을 관리합니다. 이번 글에서는 pipenv를 사용하여 분산 패키지를 배포하는 방법에 대해 알아보겠습니다.

1. 패키지 준비하기

먼저, 배포할 패키지를 준비해야 합니다. 패키지의 코드와 의존성 관련 정보가 포함된 setup.py 파일이 필요합니다. 이 파일에는 패키지 이름, 버전, 작성자 등의 정보와 필요한 의존성 패키지들이 정의되어야 합니다.

from setuptools import setup

setup(
    name='my-package',
    version='0.1',
    author='Your Name',
    packages=['my_package'],
    install_requires=[
        'requests',
        'numpy'
    ]
)

2. 패키지 배포하기

패키지를 배포하기 위해 pipenvbuild 명령어를 사용할 수 있습니다. 이 명령어는 setup.py 파일을 기반으로 패키지를 빌드하고 배포 준비를 합니다.

$ pipenv run python setup.py sdist bdist_wheel

위 명령어를 실행하면, dist 폴더에 패키지의 배포 파일이 생성됩니다.

3. 패키지 설치하기

패키지를 설치하기 위해 배포 파일을 pipenv로 설치해야 합니다. Pipfile 파일에 패키지의 배포 파일 경로를 추가하고, pipenvinstall 명령어를 사용하여 패키지를 설치할 수 있습니다.

[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]

[packages]

[scripts]

[requires]
python_version = "3.7"

[packages.my-package]
path = "dist/my_package-0.1-py3-none-any.whl"
$ pipenv install

위 명령어를 실행하면, 패키지가 가상 환경에 설치됩니다.

4. 패키지 사용하기

패키지를 사용하기 위해서는 pipenv의 가상 환경을 활성화해야 합니다. pipenv shell 명령어를 사용하여 가상 환경으로 진입한 후, 패키지를 import하여 사용할 수 있습니다.

$ pipenv shell
(my-virtualenv) $ python
Python 3.7.10 (default, Jan 27 2022, 02:53:06)
>>> from my_package import my_function
>>> my_function()

위 예제는 my_package 모듈에 있는 my_function 함수를 사용하는 예시입니다.

결론

pipenv를 사용하여 파이썬 패키지를 배포하고 설치할 수 있습니다. 이를 통해 개발자는 패키지의 의존성을 추적하고, 가상 환경을 효율적으로 관리할 수 있습니다. pipenv의 강력한 기능을 활용하여 분산 패키지의 개발과 배포를 쉽고 안정적으로 할 수 있습니다.

참고 자료