pypi | |
---|---|
URL | pypi.org |
tipo de sitio | repositorio |
Idiomas) | multilingüe, incluido el ruso |
Comienzo del trabajo | 2003 [1] |
Estado actual | activo |
PyPI ( abreviatura del inglés Python Package Index - " Directorio de paquetes de Python") es un directorio de software escrito en el lenguaje de programación Python [2] . En combinación con los sistemas de gestión de paquetes de biblioteca ( pip , easy_install) es similar a PEAR para PHP y CPAN para Perl [3] . A febrero de 2020, contiene más de 216 000 paquetes [4] , mientras que en 2010 solo había unos 10 000 paquetes [5] .
El módulo Python Distribution Utilities (distutils) se agregó por primera vez a la biblioteca estándar de Python en la versión 1.6.1 en septiembre de 2000, [6] Todos los paquetes existentes se migraron a la nueva plataforma y se conservaron sus historiales. [7] y en la versión 2.0 en octubre de 2000, nueve años después del primer lanzamiento de Python (febrero de 1991) para simplificar el proceso de instalación de paquetes de terceros en Python. [ocho]
Los propios autores registran sus paquetes en el catálogo (la primera vez que necesitan proporcionar datos sobre ellos mismos) en PyPI [9] :
python setup.py registroLos metadatos generalmente se almacenan en el archivo setup.py como parte del paquete de distribución, y el paquete se carga con un solo comando [10] :
python setup.py sdist-format=zip, carga gztarLos metadatos necesarios para el registro están documentados en PEP241 [11] (Propuesta de desarrollo de Python) adoptada en 2001. Los requisitos son: versión de metadatos, nombre del paquete, versión del paquete, plataforma(s), breve descripción, dirección de correo electrónico del autor, licencia.
Además, un paquete se puede clasificar utilizando uno o más clasificadores .
Módulo distutilsde la biblioteca estándar de Python [12] :
Las capacidades distutilsestán limitadas a un solo paquete, no tiene la capacidad de definir dependencias.
Un sistema de administración de paquetes setuptoolsbasado en módulos distutilsimplementa el sistema de seguimiento de dependencias más simple, maneja la carga de paquetes y la interacción con PyPI. Un paquete setuptoolspuede descargar e instalar automáticamente dependencias de paquetes.
La utilidad easy_install es un complemento setuptoolsy los instala durante su instalación [13] .
El paquete Distribute se setuptools separó del proyecto , que se desarrolla activamente y es compatible con Python 3 [14] .
Se supone [15] que el paquete que se está desarrollando actualmente se basará en la biblioteca estándar de Python distutilsy se incluirá en ella. Esto preservará la compatibilidad con el antiguo [16] . Distributedistutils2distutils
La utilidad pip es similar a easy_install [17] .
El siguiente ejemplo se toma del archivo setup.py del paquete webpy-celery y es una descripción de los metadatos relacionados con el paquete:
configuración ( nombre = 'webpy-celery' , versión = __version__ , url = 'http://github.com/faruken/webpy-celery' , licencia = 'BSD' , autor = 'Faruk Akgul' , autor_email = 'yo@ akgul.org' , descripción = 'Envoltura de apio para marco web.py' , descripción_larga = __doc__ , zip_safe = Falso , paquetes = buscar_paquetes ( excluir = [ 'ejemplos' , 'pruebas' ]), plataformas = 'cualquiera' , instalar_requires = [ 'web.py>=0.34' , 'celery>=2.3.0' , ], classifiers = [ 'Entorno::Entorno web' , 'Audiencia prevista::Desarrolladores' , 'Licencia::Aprobado por OSI::Licencia BSD ' , 'Sistema operativo:: Sistema operativo independiente' , 'Lenguaje de programación:: Python' , 'Lenguaje de programación:: Python:: 2.5' , 'Lenguaje de programación:: Python:: 2.6' , 'Lenguaje de programación:: Python:: 2.7 ' , 'Tema::Internet::WWW/HTTP::Contenido dinámico' , 'Tema::Desarrollo de software::Bibliotecas::Módulos de Python' , ], )Como se indica en el sitio web de PyPI, puede usar el directorio usando el comando pip (suponiendo que esté preinstalado):
pip install nombre_paqueteO simplemente busque, descargue, descomprima y luego ejecute el archivo setup.py para instalar el paquete requerido:
instalar python setup.pyEn ambos casos, todas las dependencias del paquete que se está instalando se encontrarán e instalarán automáticamente.
Lo mismo se puede hacer con otras utilidades como easy install .
El catálogo de PyPI sirve como fuente de información para los sistemas de actualización de software de Python, lo que inevitablemente plantea el tema de la seguridad de la información. El sistema de administración de bibliotecas de Python permite que los desarrolladores que desconfían mutuamente pongan sus bibliotecas a disposición de los usuarios . Actualmente, PyPI carece de un mecanismo de seguridad para la detección de actualizaciones ( eng. update discovery ) y el proceso de instalación, pero existe TUF ( ing. The Update Framework ), un marco prototipo para trabajar con PyPI de forma segura utilizando la utilidad easy_install [19] .
Pitón | |
---|---|
Comunidad | |
Implementaciones | |
Otro |
|