Akashic Records

13.5 패키징 및 배포 본문

Python for Beginners

13.5 패키징 및 배포

Andrew's Akashic Records 2023. 4. 17. 10:42
728x90

파이썬 프로젝트의 패키징 및 배포는 프로젝트를 재사용 가능한 형태로 묶고(PyPI와 같은 패키지 저장소에 업로드하여 다른 사람들이 쉽게 설치하고 사용할 수 있게) 배포하는 과정입니다. 이 과정은 setuptools, wheel, twine 등의 도구를 사용하여 수행할 수 있습니다.

패키징 및 배포를 위한 예제 프로젝트 구조는 다음과 같습니다:

example_project/
├── example_package/
│   ├── __init__.py
│   └── example_module.py
├── setup.py
└── README.md

패키징 및 배포를 위해 다음 단계를 수행합니다:

setuptools, wheel, twine 설치:

pip install setuptools wheel twine

 

setup.py 파일 작성:

프로젝트의 메타데이터와 종속성을 정의하는 setup.py 파일을 작성합니다.

from setuptools import setup, find_packages

setup(
    name="example-package",
    version="0.1.0",
    description="An example Python package",
    author="Your Name",
    author_email="your.email@example.com",
    url="https://github.com/yourusername/example-project",
    packages=find_packages(),
    install_requires=[
        # 프로젝트의 종속성을 여기에 나열하세요.
    ],
    classifiers=[
        "Development Status :: 3 - Alpha",
        "Intended Audience :: Developers",
        "License :: OSI Approved :: MIT License",
        "Programming Language :: Python :: 3",
        "Programming Language :: Python :: 3.6",
        "Programming Language :: Python :: 3.7",
        "Programming Language :: Python :: 3.8",
        "Programming Language :: Python :: 3.9",
    ],
)


패키지 빌드:

다음 명령어를 실행하여 소스 및 바이너리 배포 패키지를 생성합니다.

python setup.py sdist bdist_wheel

이 명령어를 실행한 후에 dist/ 디렉토리가 생성되고, 그 안에 .tar.gz 파일(소스 배포)과 .whl 파일(바이너리 배포)이 생성됩니다.

패키지 업로드:

먼저, PyPI 및 TestPyPI에 계정을 생성하세요. 그런 다음 다음 명령어를 실행하여 패키지를 TestPyPI에 업로드합니다.

twine upload --repository-url https://test.pypi.org/legacy/ dist/*

 

이제 패키지가 TestPyPI에 업로드되었습니다. 패키지가 정상적으로 작동하는지 확인한 후, 다음 명령어를 실행하여 패키지를 PyPI에 업로드합니다.

twine upload dist/*

이제 패키지가 PyPI에 업로드되었으며, 다른 사람들이 pip install example-package와 같은 명령어를 사용하여 패키지를 쉽게 설치하고 사용할 수 있습니다.

이 예제를 통해 파이썬 프로젝트를 패키징하고 PyPI에 배포하는 기본적인 과정을 알아보았습니다. 이 과정을 통해 작성한 코드를 다른 사람들과 공유할 수 있으며, 다양한 환경에서 프로젝트를 쉽게 설치하고 사용할 수 있도록 지원할 수 있습니다.

실제 프로젝트에서는 setuptools에 대한 추가적인 설정, 패키지 버전 관리, 패키지에 대한 문서 작성 등이 필요할 수 있습니다. 이러한 내용을 고려하여 프로젝트를 관리하고, 필요한 경우 CI/CD 파이프라인에 패키징 및 배포 과정을 통합하여 프로젝트의 전체적인 개발 및 배포 프로세스를 개선할 수 있습니다.

728x90

'Python for Beginners' 카테고리의 다른 글

14.2 scikit-learn 라이브러리  (0) 2023.04.25
14.1 기계학습 소개  (0) 2023.04.25
13.4 지속적 통합(CI)과 지속적 배포(CD)  (0) 2023.04.17
13.3 코드 리뷰와 리팩토링  (0) 2023.04.17
13.2 통합 테스트  (0) 2023.04.17
Comments