Python은 패키지를 생성하거나 게시하는 매우 간단한 방법을 제공합니다.
Python의 패키지 관리는 다양한 도구를 통해 사용할 수 있습니다-
-
삐- 운영 체제에 대한 소프트웨어 패키지의 수동 설치 및 업데이트를 사실상 제거하기 때문에 여전히 선호되는 선택 중 하나입니다. 패키지의 전체 목록과 해당 버전 번호를 관리하여 별개의 별도 환경에서 전체 패키지 그룹의 정확한 복제를 촉진합니다.
-
PPI(Python Package Index)는 pip .i.e.를 사용하여 설치할 수 있는 사용자 제출 패키지의 공개 패키지 리포지토리입니다. pip install package_name.
다음은 패키지를 업로드하는 방법에 대한 단계별 절차입니다.
1단계:업로드할 패키지 준비
패키지를 게시할 준비가 되어 있다고 가정합니다. 없으시다면 아래 절차에 따라 파이썬 패키지나 모듈을 만드세요. 아주 쉽습니다-
-
코드로 파이썬 파일을 만들고 myfirstPackage.py 또는 myPackageName.py라고 부르십시오. 이것은 모듈입니다. 데이터가 포함된 파일(myfirstPackage.py). 가져오거나 원하는 대로 할 수 있습니다.
- 패키지 만들기:
Just add an empty __init__.py file to it. echo >> __init__.py or use touch commandtouch __init_.py
$dir Volume in drive C has no label. Volume Serial Number is 8CD6-8D39 Directory of c:\Python\Python361\firstPackage 08-04-2019 05.44 PM <DIR> . 08-04-2019 05.44 PM <DIR> .. 08-04-2019 02.25 PM 47 myFirstPackage.py 08-04-2019 05.44 PM 13 __init__.py
위의 두 파일이 firstPackage 디렉토리 안에 있는 것을 볼 수 있습니다.
즉, 두 개의 파일(__init__.py 및 myfirstPackage.py)이 포함된 디렉토리를 패키지(myHelloModule)라고 합니다.
프로젝트 패키징
먼저 샘플 프로젝트를 복제하고 모듈 이름을 지정하십시오-
git clone https://github.com/pypa/sampleproject firstPackage
중요한 파일은 다음과 같습니다.
-
Setup.py – 프로젝트 구성을 지정하고 패키징 명령을 실행할 수 있습니다. 예를 들어 다음 명령을 시도하십시오. python setup.py --help
-
Setup.cfg는 setup.py 명령에 대한 옵션 기본값을 포함하는 INI 파일입니다.
-
README.rst는 reStructuredText를 사용하여 프로젝트의 목표를 설명합니다.
이 새 폴더 안에 모듈을 복사하고 기존 "샘플" 모듈을 제거하십시오-
└───firstPackage │ LICENSE.txt │ MANIFEST.in │ myFirstPackage.py │ README.md │ setup.cfg │ setup.py │ tox.ini │ __init__.py
이름, 버전, 설명 구성
Python 패키지에 대한 기본 정보를 포함하도록 setup.py를 편집하십시오-
setup.py
import setuptools with open("README.md", "r") as fh: long_description = fh.read() setuptools.setup( name="firstPackage", version="0.0.1", author="Rajesh Joshi", author_email="[email protected]", description="my First Package", long_description=long_description, long_description_content_type="text/markdown", url="https://github.com/pypa/sampleproject", packages=setuptools.find_packages(), classifiers=[ "Programming Language :: Python :: 3", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", ], )
라이선스 파일은 다음과 같습니다.
MIT License Copyright (c) [2019] [firstPackage] Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
.README용
## firstPackage This is a sample package to learn the steps of creating and publishing package.
실제 포장 단계
환경에서 setuptools 및 wheel 패키지를 설치하거나 업데이트합니다.
>pip install wheel twine setuptools –upgrade
먼저 소스 배포를 만듭니다. 이러한 종류의 "배포"(즉, 패키지)는 pip로 설치할 때 빌드 단계가 필요합니다.
>python setup.py sdist
이제 우리는 소스 배포판보다 설치하기 더 쉬운 "휠"(빌드 패키지)을 설치하려고 합니다.
>python setup.py bdist_wheel
패키지가 빌드되고 setup.py 파일 옆의 firstpackage 폴더에 있는 dist 디렉토리에서 패키지의 압축 파일을 볼 수 있기를 바랍니다.
패키지 업로드
이제 아래와 같이 원하는 다른 위치에 새 가상 환경을 만들고 활성화하십시오-
c:\Users\rajesh>virtualenv myPackage Using base prefix 'c:\\python\\python361' New python executable in c:\Users\rajesh\myPackage\Scripts\python.exe Installing setuptools, pip, wheel...done. c:\Users\rajesh\myPackage>.\Scripts\activate (myPackage) c:\Users\rajesh\myPackage>
위에서 생성한 zip 파일을 새 환경에 복사합니다.
>pip install firstPackage-0.0.1.tar.gz
패키지가 활성화된 환경에 설치되었는지 확인하려면 pip list를 실행하여 현재 환경의 모든 패키지 목록을 표시하면 됩니다.
>pip list Package Version ------------ ------- firstPackage 0.0.1 pip 19.0.3 setuptools 41.0.0 wheel 0.33.1
이제 공개적으로 사용할 수 있도록 PyPI에 패키지를 게시할 시간입니다.
먼저 setup.py가 있는 경로로 이동한 다음 트윈 패키지를 설치하거나 업데이트합니다.
>pip install --upgrade twine
마지막으로 Twin을 통해 PyPI에 패키지를 게시합니다.
>twine upload dist/* Enter your username: callraj.joshi Enter your password: Uploading distributions to https://upload.pypi.org/legacy/ Uploading firstPackage-0.0.1-py2.py3-none-any.whl …
위에서 사용자 이름과 비밀번호만 입력하면 패키지 업로드가 시작됩니다.