ในการเขียนโปรแกรมภาษา python คงไม่มีใคร ไม่รู้จักคำสั่ง pip install package_name นั่นคือ เป็นคำสั่งในการติดตั้ง package หรือไลบารีเพื่อให้โปรเจคที่เรากำลังเขียนโค้ดอยู่นั้น สามารถเรียกใช้คำสั่งจากไลบารีหรือ package นั้นได้
ขั้นตอนการสร้าง package บน PyPi
1) ก่อนอื่นเราต้องรู้ก่อนว่าคำสั่ง pip ไปเรียกดาวน์โหลดมาจากเว็บไซต์ไหน คำตอบก็คือ https://pypi.org/ ถ้าเรายังไม่มีบัญชีการใช้งานให้เราสมัครไว้เลยครับ และเก็บ username กับ password ไว้ใช้อัพโหลดหรืออัพเดตเวอร์ชัน package ที่เราสร้างครับ

2) จากนั้นเราสร้างโปรเจคที่มีโครงสร้าง package ตามในรูปด้านล่าง โดยผมมีโฟลเดอร์ root ใช้ชื่อว่า ninenoxpackage ส่วน package ข้างในจะใช้ noxconstants โดย package ข้างในจะเป็นโค้ดที่เก็บส่วนเรียกการใช้งานต่างๆ ในตัวอย่างนี้ผมใช้คำนวณหาพื้นที่ area ซึ่งฟังก์ชันการใช้งานจะอยู่ใน findarea.py ส่วนไฟล์ setup.py จะใช้เพื่อติดตั้งจำเป็นต้องมีทุกครั้ง
1 2 3 4 5 |
ninenoxpackage/ noxconstants/ __init__.py findarea.py setup.py |
รายละเอียดในไฟล์ setup.py จะเป็นข้อมูลที่ใช้ในการติดตั้ง โดยรายละเอียดมีดังนี้
name : ชื่อไลบารีหรือ package ในที่นี้ตั้งตามโฟลเดอร์ root นั่นคือ ninenoxpackage
version : เวอร์ชันของไลบารีหรือ package ต้องเปลี่ยนทุกครั้งที่จะอัพเดต
description : คำอธิบายแบบสั้นๆถึงไลบารีหรือ package ของเรา
url : ลิ้งค์ไปยัง github repo ที่เก็บ source code
author : ผู้สร้างไลบารีหรือ package
author_email : อีเมลของคนสร้างไลบารีหรือ package
packages : ใช้ find_packages() คือ เรียกใช้งานทุก package ที่อยู่ภายใน
install_requires : dependency ที่เราใช้(กรณีนี้ใช้แค่ numpy)
1 2 3 4 5 6 7 8 9 10 11 12 13 |
from setuptools import setup,find_packages setup(name='ninenoxpackage', version='0.1', description='This is ninenoxpackage.', url='http://github.com/nisit15/ninenoxpackage', author='ninenox', author_email='ninenox@ninenox.com', license='MIT', packages=find_packages(), install_requires= ['numpy'], python_requires='>=3.8', zip_safe=False) |
3) จากนั้นติดตั้ง package twine และ wheel ซึ่งจะใช้ในการ build file และอัพโหลดไปยัง pypi โดยใช้คำสั่งติดตั้งดังนี้
1 2 |
pip install twine pip install wheel |
4) คำสั่ง build ไฟล์ที่จะใช้อัพโหลด โดยจะได้เป็นไฟล์ whl หรือ tar.gz ออกมาไว้ใช้อัพโหลดในขั้นตอนต่อไป
1 2 |
python setup.py sdist bdist_wheel # ได้ทั้ง tar.gz และ whl #python setup.py bdist_wheel # เฉพาะไฟล์ whl |
5) คำสั่งอัพโหลด หลังจาก enter จะต้องกรอก username และ password ที่สมัครกับเว็บ pypi
1 |
twine upload dist/* |
6) กรณีอัพเดต เราก็จะเปลี่ยนเลข version ในไฟล์ setup.py แล้วใช้คำสั่งข้อ 4 และข้อ 5 ทำแบบนี้ทุกครั้งที่อัพเดต
ง่ายๆแค่นี้เราก็มี package เป็นของตัวเองเพื่อให้คนอื่นติดตั้งไว้ใช้งานแล้วครับ
