Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การแพ็กเกจและเผยแพร่ Python Code (Packaging & Publishing)

Python มีวิธีง่ายๆ ในการสร้างและเผยแพร่ Package

เครื่องมือ Package Management

  • Pip: ตัวจัดการแพ็กเกจหลัก กำจัดการติดตั้ง Manual จัดการรายการแพ็กเกจและเวอร์ชัน
  • Python Package Index (PyPI): Public Repository ติดตั้งได้ด้วย pip install package_name

ขั้นตอนการสร้างและเผยแพร่ Package

Step 1: เตรียม Package

# 1. สร้างไฟล์ Python โค้ดของคุณ เช่น mypackage.py
# 2. สร้างโฟลเดอร์ package และเพิ่ม __init__.py
mkdir mypackage
touch mypackage/__init__.py
# 3. ย้ายโค้ดเข้าไป
mv mypackage.py mypackage/

Step 2: ใช้ Sample Project Template

git clone https://github.com/pypa/sampleproject mypackage

โครงสร้างไฟล์สำคัญ

mypackage/
├── LICENSE.txt
├── README.md
├── setup.py
├── setup.cfg
├── pyproject.toml
├── mypackage/
│   ├── __init__.py
│   └── module.py
└── tests/

Step 3: กำหนดค่าใน setup.py

import setuptools

with open("README.md", "r", encoding="utf-8") as fh:
    long_description = fh.read()

setuptools.setup(
    name="mypackage",
    version="0.0.1",
    author="Your Name",
    author_email="you@example.com",
    description="Short description",
    long_description=long_description,
    long_description_content_type="text/markdown",
    url="https://github.com/yourusername/mypackage",
    packages=setuptools.find_packages(),
    classifiers=[
        "Programming Language :: Python :: 3",
        "License :: OSI Approved :: MIT License",
        "Operating System :: OS Independent",
    ],
    python_requires=">=3.6",
    install_requires=[
        "requests>=2.25.0",
    ],
)

Step 4: สร้าง Distribution Files

# ติดตั้งเครื่องมือ
pip install --upgrade setuptools wheel twine

# สร้าง Source Distribution (sdist)
python setup.py sdist

# สร้าง Wheel Distribution (bdist_wheel) - ติดตั้งเร็วกว่า
python setup.py bdist_wheel

ไฟล์จะอยู่ในโฟลเดอร์ dist/

Step 5: ทดสอบติดตั้งใน Local

# สร้าง Virtual Environment ใหม่
python -m venv test_env
source test_env/bin/activate  # Linux/Mac
# test_env\Scripts\activate   # Windows

# ติดตั้งจากไฟล์ .tar.gz
pip install dist/mypackage-0.0.1.tar.gz

# ตรวจสอบ
pip list

Step 6: เผยแพร่ขึ้น PyPI

# ตรวจสอบไฟล์ก่อนอัปโหลด
twine check dist/*

# อัปโหลดไป TestPyPI ก่อน (แนะนำ)
twine upload --repository testpypi dist/*

# อัปโหลดไป PyRI จริง
twine upload dist/*

จะถูกขอ Username/Password ของ PyPI Account

ไฟล์สำคัญอื่นๆ

  • README.md: คำอธิบายโปรเจกต์ (Markdown)
  • LICENSE.txt: License (MIT, Apache 2.0, GPL, ฯลฯ)
  • MANIFEST.in: ระบุไฟล์เพิ่มเติมที่ต้องรวมใน sdist
  • pyproject.toml: Build System Configuration (Modern Standard)