การเผยแพร่แพ็กเกจ

การพัฒนา Python Packages

James Fulton

Climate informatics researcher

PyPI

Python Package Index

  • pip ติดตั้งแพ็กเกจจากที่นี่
  • ทุกคนสามารถอัปโหลดแพ็กเกจได้
  • ควรอัปโหลดแพ็กเกจทันทีที่คิดว่ามีประโยชน์
1 https://pypi.org/
การพัฒนา Python Packages

การแจกจ่าย (Distributions)

  • Distribution package — แพ็กเกจที่รวมไว้พร้อมสำหรับติดตั้ง
  • Source distribution — distribution package ที่ประกอบด้วยซอร์สโค้ดเป็นหลัก
  • Wheel distribution — distribution package ที่ผ่านการประมวลผลเพื่อให้ติดตั้งได้เร็วขึ้น
การพัฒนา Python Packages

วิธีบิลด์ distributions

python setup.py sdist bdist_wheel

  • sdist = source distribution
  • bdist_wheel = wheel distribution
mysklearn/
|-- mysklearn
|-- setup.py
|-- requirements.txt
|-- LICENSE
|-- README.md

|-- dist <---
| |-- mysklearn-0.1.0-py3-none-any.whl
| |-- mysklearn-0.1.0.tar.gz
|-- build |-- mysklearn.egg-info
การพัฒนา Python Packages

การเผยแพร่แพ็กเกจสู่สาธารณะ

อัปโหลด distributions ไปยัง PyPI

twine upload dist/*

อัปโหลด distributions ไปยัง TestPyPI

twine upload -r testpypi dist/*
mysklearn/
|-- mysklearn
|-- setup.py
|-- requirements.txt
|-- LICENSE
|-- README.md
|-- dist
|   |-- mysklearn-0.1.0-py3-none-any.whl
|   |-- mysklearn-0.1.0.tar.gz
|-- build
|-- mysklearn.egg-info
การพัฒนา Python Packages

วิธีที่ผู้อื่นสามารถติดตั้งแพ็กเกจของคุณ

ติดตั้งแพ็กเกจจาก PyPI

pip install mysklearn

ติดตั้งแพ็กเกจจาก TestPyPI

pip install --index-url         https://test.pypi.org/simple 
            --extra-index-url   https://pypi.org/simple
            mysklearn
การพัฒนา Python Packages

มาฝึกกันเถอะ!

การพัฒนา Python Packages

Preparing Video For Download...