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