Download Python Packaging
Document related concepts
no text concepts found
Transcript
Python Packaging Josué Ortega http://josueortega.org Debian Guatemala November 15, 2014 licencia noahfx (Debian Guatemala) CC BY-SA 3.0 — Creative Commons Attribution-ShareAlike 3.0 Python Packaging November 15, 2014 1 / 16 ¿Por Qué empaquetar nuestros programas hechos en Python? ¿Por Qué empaquetar nuestros programas hechos en Python? noahfx (Debian Guatemala) Python Packaging November 15, 2014 2 / 16 ¿Por Qué empaquetar nuestros programas hechos en Python? ¿Por Qué empaquetar nuestros programas hechos en Python? Fácilidad de instalación (setuptools) noahfx (Debian Guatemala) Python Packaging November 15, 2014 2 / 16 ¿Por Qué empaquetar nuestros programas hechos en Python? ¿Por Qué empaquetar nuestros programas hechos en Python? Fácilidad de instalación (setuptools) Fácilidad de compartir noahfx (Debian Guatemala) Python Packaging November 15, 2014 2 / 16 ¿Por Qué empaquetar nuestros programas hechos en Python? ¿Por Qué empaquetar nuestros programas hechos en Python? Fácilidad de instalación (setuptools) Fácilidad de compartir Fácilidad de distribución (pypi, pip, easy install) noahfx (Debian Guatemala) Python Packaging November 15, 2014 2 / 16 ¿Qué se necesita para empaquetar? ¿Qué se necesita para empaquetar? noahfx (Debian Guatemala) Python Packaging November 15, 2014 3 / 16 ¿Qué se necesita para empaquetar? ¿Qué se necesita para empaquetar? Un programa escrito en Python :) noahfx (Debian Guatemala) Python Packaging November 15, 2014 3 / 16 ¿Qué se necesita para empaquetar? ¿Qué se necesita para empaquetar? Un programa escrito en Python :) setuptools (Magia) noahfx (Debian Guatemala) Python Packaging November 15, 2014 3 / 16 ¿Qué se necesita para empaquetar? ¿Qué se necesita para empaquetar? Un programa escrito en Python :) setuptools (Magia) twine (opcional) noahfx (Debian Guatemala) Python Packaging November 15, 2014 3 / 16 ¿Qué se necesita para empaquetar? setuptools setuptools Es una colección de mejoras de los Python distutils que ayudan a hacer mas fácil construir y distribuir Paquetes especialmente con aquellas que dependen de otros paquetes. noahfx (Debian Guatemala) Python Packaging November 15, 2014 4 / 16 Estructura Minima cgsolpkg/ cgsolpkg/ *setup.py README.rst MANIFEST.in data/ noahfx (Debian Guatemala) Python Packaging November 15, 2014 5 / 16 setup.py setup.py Name noahfx (Debian Guatemala) Python Packaging November 15, 2014 6 / 16 setup.py setup.py Name Version noahfx (Debian Guatemala) Python Packaging November 15, 2014 6 / 16 setup.py setup.py Name Version Packages noahfx (Debian Guatemala) Python Packaging November 15, 2014 6 / 16 setup.py setup.py Name Version Packages Metadata noahfx (Debian Guatemala) Python Packaging November 15, 2014 6 / 16 setup.py setup.py Name Version Packages Metadata Dependencies noahfx (Debian Guatemala) Python Packaging November 15, 2014 6 / 16 setup.py setup.py Name Version Packages Metadata Dependencies Package Data noahfx (Debian Guatemala) Python Packaging November 15, 2014 6 / 16 setup.py setup.py Name Version Packages Metadata Dependencies Package Data Data Files noahfx (Debian Guatemala) Python Packaging November 15, 2014 6 / 16 setup.py setup.py Name Version Packages Metadata Dependencies Package Data Data Files Scripts noahfx (Debian Guatemala) Python Packaging November 15, 2014 6 / 16 Archivos Opcionales Archivos Opcionales MANIFEST.in noahfx (Debian Guatemala) Python Packaging November 15, 2014 7 / 16 Archivos Opcionales Archivos Opcionales MANIFEST.in README noahfx (Debian Guatemala) Python Packaging November 15, 2014 7 / 16 Desarrollando el Proyecto Desarrollando el Proyecto python setup.py develop pip install -e noahfx (Debian Guatemala) Python Packaging November 15, 2014 8 / 16 Empaquetando PyPI PyPI (Python Package Index) Es el Index de paquetes Python por default para la comunidad de Python. Esta abierto a todos las personas que desarrollan en Python para consumir y distribuir sus paquetes https://pypi.python.org/pypi noahfx (Debian Guatemala) Python Packaging November 15, 2014 9 / 16 Empaquetando Built Distributions vs Source Distributions Built Distributions Son distribuciones donde el manejador de paquetes solo se encarga de copiar los archivos a sus diretorios de destino. noahfx (Debian Guatemala) Python Packaging November 15, 2014 10 / 16 Empaquetando Built Distributions vs Source Distributions Source Distributions(sdist) Son distribuciones (usualmente generadas con setuptools) que proveen la metadata y las fuentes necesarias para instalarlas con herramientas como pip o para generar Built Distributions. noahfx (Debian Guatemala) Python Packaging November 15, 2014 11 / 16 Empaquetando Built Distributions vs Source Distributions Hora de la magia python setup.py sdist noahfx (Debian Guatemala) Python Packaging November 15, 2014 12 / 16 Publicando en PyPI Publicando en PyPI Crear cuenta Subir el paquete noahfx (Debian Guatemala) Python Packaging November 15, 2014 13 / 16 Publicando en PyPI Crear cuenta PyPI python setup.py register noahfx (Debian Guatemala) Python Packaging November 15, 2014 14 / 16 Publicando en PyPI Subiendo el paquete a PyPI twine upload dist/* noahfx (Debian Guatemala) Python Packaging November 15, 2014 15 / 16 ¿Preguntas? ¿Preguntas? noahfx (Debian Guatemala) Python Packaging November 15, 2014 16 / 16 ¿Preguntas? ¿Preguntas? Happy Hacking licencia noahfx (Debian Guatemala) http://josueortega.org/talks [email protected] CC BY-SA 3.0 — Creative Commons Attribution-ShareAlike 3.0 Python Packaging November 15, 2014 16 / 16