PyPI에서 패키징 및 게시
공식 PyPI 웹사이트에 Packaging Python Projects에 대한 자습서가 있지만 이 문서는... 구식입니다.
PyPI란 무엇입니까?
웹사이트에서 말하는 것처럼:
The Python Package Index (PyPI) is a repository of software for the Python programming language.
즉, PyPI는 Python의 공식 타사 소프트웨어 리포지토리입니다. (PyPI 계정이 있는) 누구나 다른 개발자가 사용할 수 있도록 Python 패키지를 게시할 수 있습니다. PyPI는 이러한 Python 패키지를 sdists(소스 배포판) 또는 미리 컴파일된 "바퀴"형식으로 호스팅합니다.
파일 구조
프로젝트를 패키징하기 전에 특정 파일 구조를 유지해야 합니다.
package_name/
├── src/
| ├── __init__.py
| ├── example.py
| └── py.typed
├── LICENSE
├── pyproject.toml
├── README.md
├── setup.py (or) setup.cfg
└── tests/
각 파일이 하는 일은 다음과 같습니다.
src/__init__.py
: 이 파일에는 모든 가져오기 문이 포함되어 있습니다. from .example import <function names>
와 같은 문장을 추가합니다.src/example.py
: 이 파일에는 모든 함수 및 클래스 정의가 포함되어 있습니다. src/py.typed
: 빈 파일입니다. Read more hereLICENSE
: 이 파일에는 게시 중인 코드에 대한 라이센스가 포함되어 있습니다.pyproject.toml
: 이 파일은 패키지를 빌드하는 데 필요한 빌드 도구(예: build 및 pip)를 알려줍니다. 지금은 다음을 수행합니다.[build-system]
requires = [
"setuptools>=42",
"wheel"
]
build-backend = "setuptools.build_meta"
README.md
: 이 파일은 가이드 역할을 합니다. 개발자에게 프로젝트에 대한 자세한 설명을 제공합니다. setup.py
(동적) 또는 setup.cfg
(정적)은 패키지에 대한 "setuptools"정보(예: 이름, 버전, 작성자 등)를 제공하는 파일입니다. 또한 포함할 코드 파일을 알려줍니다setuptools
.tests/
: 이 폴더는 테스트 파일의 자리 표시자입니다. 포장 프로젝트
먼저 장치에 설치된
pip
가 최신 버전인지 확인하십시오. 이렇게 하려면 다음을 실행합니다.$ pip install --upgrade pip
그런 다음 다음을 사용하여
build
를 설치합니다.$ pip install --upgrade build
이제 프로젝트를 패키징해 보겠습니다. 프로젝트를 패키징하려면 다음을 실행합니다.
$ python -m build
이 명령은 많은 텍스트를 출력하고
build/
폴더와 dist/
폴더를 만듭니다.프로젝트가 패키지되었습니다! 이제 PyPI에 게시해야 합니다.
PyPI에 게시
PyPI에 게시하는 첫 번째 단계는 거기에 계정을 만드는 것입니다. PyPI으로 이동하여 등록을 클릭합니다(오른쪽 상단 모서리에 있는 텍스트, 녹색으로 강조 표시됨).
다음과 같은 양식을 받게 됩니다.
양식을 작성하고 사용자 이름과 비밀번호를 기억하십시오. 프로젝트를 게시하는 동안 필요합니다.
이제 터미널로 돌아가서 다음을 실행하십시오.
$ pip install --upgrade twine
이 명령은 꼬기가 이미 있는 경우 꼬기를 최신 버전으로 업그레이드합니다. 없는 경우 최신 버전을 설치합니다. 이제 패키지를 업로드할 차례입니다!
$ twine upload dist/*
인증을 위해 PyPI 사용자 이름과 암호를 입력하라는 메시지가 표시됩니다. 입력하면 출력의 마지막 줄에 URL이 표시됩니다. URL 형식은
https://pypi.org/project/<package_name>
입니다.축하합니다. Python 패키지가 PyPI에 게시되었습니다!!!
이제 라이브러리를 pip 설치해 봅시다!
$ pip install <package_name>
Reference
이 문제에 관하여(PyPI에서 패키징 및 게시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/siddhesh_agarwal/packaging-and-publishing-on-pypi-1lbd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)