나만의 Python 패키지 만들기 시작하는 방법

지난 며칠 동안 - 저는 오픈 소스에 더 많이 참여하는 방법을 찾고 있었습니다. 그래서 저는 Github에서 다양한 리포지토리와 기술을 탐색하고 있었습니다. 이것은 제 생각을 하게 했습니다. GitHub에서 다른 개발자를 도울 수 있는 도구나 프로그램이 있다면 얼마나 좋을까요? 이제 내 물건의 대부분은 전체 응용 프로그램이 아니라 웹 사이트입니다. 하지만 어떻게 시작합니까? 내 소프트웨어를 다른 사람이 사용할 수 있도록 하려면 어떻게 해야 합니까? 인터넷 검색 후, 나는 내 자신의 패키지를 만들어야한다는 것을 빨리 깨달았습니다! 그래서 여기에서 우리는 파이썬 패키지를 만드는 방법의 기본을 배울 것입니다!

패키지란?



파이썬 패키지는 무언가를 수행하는 파일 묶음일 뿐입니다. 파이썬 모듈과 유사합니다. 사용을 위해 가져올 수 있는 file.py (모듈)이 됩니다.

최소 요구 사항들



위에서 말했듯이 이것은 자신의 파이썬 패키지를 만드는 데 필요한 가장 최소한의 수준에서 모든 것을 다룰 것입니다. 그래서 당신이 패키지에 대한 이 멋진 아이디어를 가지고 있고 그것을 my_package라고 부른다고 가정해봅시다.

파일 구조



아래는 필요한 최소 파일 및 디렉토리 구조를 보여줍니다.

📦 my_package
 ┣ 📂 my_package
 ┃ ┗ 📜 __init__.py
 ┣ 📂 tests
 ┣ 📜 LICENSE
 ┣ 📜 README.md
 ┗ 📜 setup.py



루트 디렉토리는 패키지 이름인 my_package입니다. 그런 다음 이 안에 같은 이름의 다른 디렉토리가 있습니다. 이것은 패키지의 모든 소스 코드가 있는 곳입니다. init.py 파일을 잊지 마세요! 뿌리에는 우리도 있습니다.
  • 모든 단위 테스트에 대한 테스트 디렉토리
  • 패키지 사용 조건을 알 수 있는 LICENSE 파일 - 라이선스 선택에 도움이 필요한 경우 방문HERE
  • 마크다운으로 작성된 README. 여기에서 패키지의 기능, 사용 방법, 다운로드 방법 등 패키지에 대한 모든 정보를 설명합니다.
  • 마지막은 setuptools 에 의해 빌드 스크립트로 사용되는 setup.py 파일입니다. 이 파일에는 패키지 이름, 버전, 설명, 작성자 등이 포함되어 있습니다.

  • 릴리스 요구 사항 생성



    필요한 파일이 있으면 릴리스에 필요한 도구/파일을 만들어야 합니다. 그렇지 않으면 패키지에 대한 생성distribution packages이라고 합니다. 이러한 도구는 다음과 같이 명령줄에서 pip를 사용하여 빠르고 쉽게 설치할 수 있습니다.

    python3 -m pip install --user --upgrade setuptools wheel
    


    이들을 설치한 후 패키지 루트 디렉토리에서 아래 명령을 실행하십시오.

    python3 setup.py sdist bdist_wheel
    


    VOILA와 마찬가지로 패키지 배포에 필요한 것을 생성했습니다.

    멋진 패키지를 업로드하세요!



    이제 패키지를 Python Package Index에 업로드할 시간입니다.

    PyPi에서 계정을 등록해야 합니다(아직 계정이 없는 경우).

    이제 twine을 사용하여 패키지를 업로드할 수 있습니다. 먼저, 아직 설치하지 않은 경우 설치해야 합니다.

    python3 -m pip install --user --upgrade twine
    


    그런 다음 아래 명령을 실행하여 패키지를 업로드하십시오!

    python3 -m twine upload dist/*
    


    이제 PyPi에 패키지를 업로드하고 해당 패키지를 pip 로 설치할 수 있는 데 필요한 최소 요구 사항이 무엇인지 알게 되었습니다.

    몇 가지 메모



    여기에서 어떤 주제에 대해 질문이 있는 경우 이tutorial를 살펴보십시오.

    또한, 위의 튜토리얼은 TestPyPi에 업로드하는 방법과 패키지를 디버그하고 올바르게 설치하는지 확인하는 방법 등을 보여줍니다.

    읽어주셔서 감사합니다. 어떤 멋진 패키지가 나올지 기대됩니다! 계속 코딩!

    원래 내 개인 블로그에 게시됨: Check it out here!

    좋은 웹페이지 즐겨찾기