10 เมษายน 2558

Published เมษายน 10, 2558 by with 0 comment

ส่งโมดูล Python ขึ้นไปยัง PyPI

จากบทความที่แล้ว ผมพาผู้อ่านทุกท่านไปสร้างโมดูลบนภาษา Python กันมาแล้ว บทความนี้จะพาผู้อ่านส่งโมดูลขึ้นไปยัง PyPI กันครับ


PyPI คืออะไร
PyPI ย่อมาจาก Python Package Index เป็นคลังโปรแกรมและไลบรารีเสริมของ Python โดย Python เวชั่นใหม่ ๆ สามารถสั่งติดตั้งโมดูลจาก PyPI ได้ด้วยคำสั่ง pip หรือคำสั่ง easy_install ได้ครับ

อย่างแรกให้ผู้อ่านสมัคร PyPI account สำหรับส่งโมดูลขึ้นไปยัง PyPI ได้ที่ https://pypi.python.org/pypi?%3Aaction=register_form โดยต้องใช้ PGP Key ID ด้วยครับ อ่านวิธีการทำ PGP Key ID ได้ที่ https://www.thaicert.or.th/papers/general/2013/pa2013ge002.html

หลังจากที่ยืนยันอีเมลเสร็จแล้ว ให้ผู้อ่านเตรียมความพร้อมของไฟล์เหล่านี้ครับ
1. ไฟล์ setup.py
ต้องมีรายละเอียดดังนี้ครับ


2. ไฟล์โมดูล
3. ไฟล์ README.txt
ไฟล์ README.txt นี้เป็นรายละเอียดการใช้งานโมดูลของเรา เหมือนที่เราเห็นทั่วไปตามหน้าเพจของ PyPI ครับ สามารถสร้างไฟล์โดยอาคัยเครื่องมือจากเว็บ http://rst.ninjs.org ครับ
4. ไฟล์ LICENSE.txt เป็นไฟล์ที่ระบุลิขสิทธิ์การใช้งานโมดูลของเรา เช่น ผมเลือก MIT สามารถเข้าไปที่ http://opensource.org/licenses/MIT เพื่อก็อบ LICENSE มาวางไว้ที่ LICENSE.txt ได้เลยครับ
แนะนำให้ใช้ภาษาอังกฤษทั้งหมดนะครับ

เปิดคอมมานด์ไลน์เข้าไปยังโฟลเลอร์ที่เก็บไฟล์ setup.py ของโมดูลครับ แล้วใช้คำสั่ง
python setup.py register

>python setup.py register
running register
running check
We need to know who you are, so please choose either:
 1. use your existing login,
 2. register as a new user,
 3. have the server generate a new password for you (and email it to you), or
 4. quit
Your selection [default 1]:
1
Username: 
Password:
Registering pytemperature to https://pypi.python.org/pypi
Server response (200): OK
I can store your PyPI login so future submissions will be faster.
(the login will be stored in C:\Users\วรรณพงษ์\.pypirc)
Save your login (y/N)?y

แล้วใช้คำสั่ง
python setup.py sdist

จะได้โฟลเลอร์ dist โดยข้างในจะเก็บไฟล์บีบอัดโมดูลไว้ครับ
เสร็จแล้วทำการติดตั้งโมดูล twine เป็นโมดูลที่ช่วยอัพโหลดไฟล์ขึ้น PyPI ครับ
pip install twine

จากนั้นทำการอัพโหลดไฟล์โมดูลขึ้น pypi
twine upload dist/*

แค่นี้ก็เรียบร้อยแล้วครับ :D

โมดูลแรกในชีวิตผม https://pypi.python.org/pypi/pytemperature :D
เป็นโมดูลที่ช่วยแปลงหน่วยของอุณหภูมิครับ
อ่านเพิ่มเติมได้ที่ https://python3.wannaphong.com/2015/04/pytemperature.html

รายการ classifiers ที่อยู่ใน setup.py สามารถเลือกรายละอียดจาก https://pypi.python.org/pypi?%3Aaction=list_classifiers มาใส่ได้ครับ

ติดตามบทความต่อไปนะครับ
ขอบคุณครับ

0 ความคิดเห็น:

แสดงความคิดเห็น

แสดงความคิดเห็นได้ครับ :)