Đóng gói Package Python để cài đặt với PIP


Nào bây giờ chúng ta cùng đóng gói Python Package đầu tiên của các bạn nhé! Mình đặt tên cho package này là VinaSupport

Tạo Python package

Đầu tiên chúng ta tạo câu trúc thư mục như sau:

Giải thích cho 4 file này: 

  • VinaSupport/MyModule.py chứa mã nguồn của chương trình
  • VinaSupport/__init__.py để load các module, Class của chương trình
  • setup.py để tạo Package Python
  • test.py để test package của bạn

Nội dung cho 4 file này: 

– File: VinaSupport/MyModule.py

def hello_world():
    print('We are vinasupport team')

– File: VinaSupport/__init__.py

from .MyModule import hello_world

– File: setup.py

from setuptools import setup
setup(
    name='VinaSupport',
    version='0.1',
    description='Testing installation of First Package',
    url='https://vinasupport.com',
    author='Manlivo',
    author_email='admin@vinasupport.com',
    license='MIT',
    packages=['VinaSupport'],
    zip_safe=False
)

– File: test.py

import VinaSupport

# Call hello word
VinaSupport.hello_world()

Cài đặt trực tiếp từ Package

Để cài trực tiếp từ Package mà không cần đóng gói, chúng ta sử dụng command sau:

cd MyProjects
pip install .

Kết quả package đã được cài đặt thành công

Tạo file package .tar.gz để cài từ pip

Một phương án khác là tạo ra package được đóng gói thành 1 file .tar.gz để cài đặt offline. Tham khảo cách bên dưới:

Tạo file .tar.gz (đóng gói package) bằng command sau:

python setup.py sdist

Sau khi chạy command chúng ta có cấu trúc thư mục thay đổi như sau:

Khi đó file đóng gói có đường dẫn là dist/VinaSupport-0.1.tar.gz

Để cài đặt file đóng gói qua pip chúng ta sử dụng command sau:

pip install dist/VinaSupport-0.1.tar.gz

Test package sau khi được cài đặt

Chạy file test.py bằng command sau:

python3 test.py

Kết quả:

Vậy là chúng ta đã tạo thành công package python đầu tiên của mình. Nếu có vấn đề gì xin các bạn vui lòng để lại bình luận bên dưới

Nguồn: vinasupport.com

 

 

             
SHARE

Bài viết liên quan

mode_edit Bình luận của bạn

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

account_circle
web