Python cung cấp một cách rất đơn giản để tạo hoặc xuất bản các gói.
Quản lý gói bằng Python có sẵn thông qua các công cụ khác nhau−
-
Pip- Nó vẫn là một trong những lựa chọn ưu tiên vì nó hầu như loại bỏ mọi cài đặt thủ công và cập nhật gói phần mềm cho hệ điều hành. Nó quản lý danh sách đầy đủ các gói và số phiên bản tương ứng của chúng, giúp tăng cường sự sao chép chính xác của toàn bộ các nhóm gói trong một môi trường riêng biệt, riêng biệt.
-
Python Package Index (PPI) là một kho lưu trữ gói công khai gồm các gói do người dùng gửi có thể được cài đặt bằng cách sử dụng pip .i.e. pip cài đặt package_name.
Dưới đây là quy trình từng bước về cách tải lên gói.
Bước 1:Có một gói để tải lên
Tôi cho rằng bạn đã chuẩn bị sẵn gói để xuất bản. Nếu bạn chưa có, hãy làm theo quy trình dưới đây để tạo gói hoặc mô-đun python, điều tốt là nó rất dễ dàng−
-
Tạo tệp python bằng mã của bạn, gọi nó là myfirstPackage.py hoặc myPackageName.py Đây là một mô-đun. một tệp (myfirstPackage.py) với dữ liệu trong đó. Chúng tôi có thể nhập nó hoặc làm bất cứ điều gì chúng tôi muốn.
- Làm cho nó thành một gói:
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
Bạn có thể thấy hai tệp ở trên có bên trong thư mục FirstPackage.
Vậy đó, có một thư mục chứa hai tệp (__init__.py và myfirstPackage.py) được gọi là một gói (myHelloModule).
Đóng gói dự án của bạn
Đầu tiên, sao chép dự án mẫu và đặt cho nó tên mô-đun của bạn−
git clone https://github.com/pypa/sampleproject firstPackage
Các tệp quan trọng là−
-
Setup.py - Nó cho phép chúng tôi chỉ định cấu hình dự án của mình và chạy các lệnh đóng gói:ví dụ:hãy thử lệnh này:python setup.py --help
-
Setup.cfg là một tệp INI chứa các tùy chọn mặc định cho các lệnh setup.py
-
README.rst mô tả mục tiêu của dự án, sử dụng reStructuredText.
Sao chép (các) mô-đun của bạn bên trong thư mục mới này và xóa mô-đun “mẫu” hiện có−
└───firstPackage │ LICENSE.txt │ MANIFEST.in │ myFirstPackage.py │ README.md │ setup.cfg │ setup.py │ tox.ini │ __init__.py
Định cấu hình tên, phiên bản, mô tả
Chỉnh sửa setup.py để chứa thông tin cơ bản về gói Python của bạn−
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", ], )
Và tệp giấy phép của bạn sẽ giống như−
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.
.Đối với README
## firstPackage This is a sample package to learn the steps of creating and publishing package.
Các bước đóng gói thực tế
Cài đặt hoặc cập nhật các công cụ thiết lập và gói bánh xe trong môi trường.
>pip install wheel twine setuptools –upgrade
Đầu tiên, hãy tạo một bản phân phối nguồn. Loại "phân phối" (.i.e. Gói) này yêu cầu một bước xây dựng khi được cài đặt bằng pip.
>python setup.py sdist
Bây giờ chúng tôi muốn cài đặt một “bánh xe” (một gói được xây dựng) phù hợp hơn để cài đặt so với một bản phân phối nguồn.
>python setup.py bdist_wheel
Hy vọng rằng gói sẽ được tạo và bạn có thể thấy tệp nén của gói trong thư mục dist trong thư mục gói đầu tiên của bạn bên cạnh tệp setup.py.
Tải lên gói của bạn
Bây giờ, hãy tạo một môi trường ảo mới tại một số vị trí khác mà bạn chọn và kích hoạt nó, giống như bên dưới−
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>
Sao chép tệp zip được tạo ở trên trong môi trường mới của bạn.
>pip install firstPackage-0.0.1.tar.gz
Để xác minh gói của bạn được cài đặt trong môi trường đã kích hoạt, chỉ cần chạy danh sách pip để hiển thị danh sách tất cả các gói trong môi trường hiện tại của bạn.
>pip list Package Version ------------ ------- firstPackage 0.0.1 pip 19.0.3 setuptools 41.0.0 wheel 0.33.1
Bây giờ đã đến lúc xuất bản gói lên PyPI, để nó được công bố rộng rãi.
Trước tiên, hãy truy cập đường dẫn nơi setup.py tồn tại và sau đó cài đặt hoặc cập nhật gói đôi.
>pip install --upgrade twine
Cuối cùng, xuất bản gói của bạn lên PyPI thông qua bộ đôi,
>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 …
Ở trên, chúng ta chỉ cần nhập tên người dùng và mật khẩu, sau đó nó sẽ bắt đầu tải lên gói của chúng ta.