Diferències
Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
Següent revisió | Revisió prèvia | ||
info:cursos:netacad:python:pe2m1:pip [23/06/2022 04:39] – creat mate | info:cursos:netacad:python:pe2m1:pip [30/06/2022 09:22] (actual) – mate | ||
---|---|---|---|
Línia 131: | Línia 131: | ||
Para abreviar, podemos decir que **la dependencia es un fenómeno que aparece cada vez que vas a utilizar un software que depende de otro software**. Ten en cuenta que la dependencia puede incluir (y generalmente incluye) más de un nivel de desarrollo de software. | Para abreviar, podemos decir que **la dependencia es un fenómeno que aparece cada vez que vas a utilizar un software que depende de otro software**. Ten en cuenta que la dependencia puede incluir (y generalmente incluye) más de un nivel de desarrollo de software. | ||
- | ¿Significa esto que un usuario potencial del paquete nyse está obligado a rastrear todas las dependencias e instalar manualmente todos los paquetes necesarios? Eso sería horrible, ¿no? | + | ¿Significa esto que un usuario potencial del paquete |
Sí, definitivamente es horrible, por lo que no deberías sorprenderse de que el proceso de cumplir arduamente con todos los requisitos posteriores tenga su propio nombre, y se llame infierno de dependencias. | Sí, definitivamente es horrible, por lo que no deberías sorprenderse de que el proceso de cumplir arduamente con todos los requisitos posteriores tenga su propio nombre, y se llame infierno de dependencias. | ||
Línia 139: | Línia 139: | ||
Afortunadamente no, pip puede hacer todo esto por ti. Puede descubrir, identificar y resolver todas las dependencias. Además, puede hacerlo de la manera más inteligente, | Afortunadamente no, pip puede hacer todo esto por ti. Puede descubrir, identificar y resolver todas las dependencias. Además, puede hacerlo de la manera más inteligente, | ||
- | https://edube.org/learn/python-essentials-2-esp/c-oacute-mo-usar-pip | + | == Cómo usar pip |
+ | <code bash>pip help | ||
+ | pip help install | ||
+ | pip list</ | ||
+ | La lista //pip// no es muy informativa y puede suceder que no satisfaga tu curiosidad. Afortunadamente, | ||
+ | |||
+ | ¿Puedes preguntar de dónde provienen estos datos? ¿Es //pip// realmente tan perceptivo? En lo absoluto: la información que aparece en la pantalla se toma del interior del paquete que se muestra. En otras palabras, el creador del paquete está obligado a equiparlo con todos los datos necesarios (o para expresarlo de manera más precisa: metadatos). | ||
+ | Observa las dos líneas en la parte inferior de la salida. Muestran: | ||
+ | * Qué paquetes son necesarios para utilizar con éxito el paquete (Requires: | ||
+ | * Qué paquetes necesitan que el paquete se utilice con éxito (Required-by: | ||
+ | Como puedes ver, ambas propiedades están vacías. No dudes en intentar utilizar el comando **show** en relación con cualquier otro paquete instalado. | ||
+ | |||
+ | De hecho, pip usa Internet para consultar PyPI y descargar los datos requeridos. Esto significa que debes tener una conexión de red en funcionamiento siempre que vayas a solicitar a pip cualquier cosa que pueda implicar interacciones directas con la infraestructura de PyPI. | ||
+ | |||
+ | Uno de estos casos ocurre cuando deseas buscar en PyPI para encontrar el paquete deseado. Este tipo de búsqueda se inicia con el siguiente comando:< | ||
+ | |||
+ | La cadena **anystring** que se proporciono será buscada en: | ||
+ | |||
+ | * Los nombres de todos los paquetes. | ||
+ | * Las cadenas de resumen de todos los paquetes. | ||
+ | Ten en cuenta que algunas búsquedas pueden generar una avalancha real de datos, así que trata de ser lo más específico posible. Por ejemplo, una consulta de apariencia inocente como esta: | ||
+ | |||
+ | <code bash>pip search pip</ | ||
+ | |||
+ | Produce más de 100 líneas de resultados (pruébalo tu mismo, no te fíes de nuestra palabra). Por cierto, la búsqueda no distingue entre mayúsculas y minúsculas. | ||
+ | |||
+ | Si no eres fanático de la lectura en consola, puedes usar la forma alternativa de navegar por el contenido de PyPI que ofrece un motor de búsqueda, disponible en https://pypi.org/search. | ||
+ | |||
+ | Suponiendo que tu búsqueda es exitosa (o estás decidido a instalar un paquete específico de un nombre ya conocido), puedes usar pip para instalar el paquete en tu computadora. | ||
+ | |||
+ | Es posible que ahora se pongan en práctica dos escenarios posibles: | ||
+ | |||
+ | * Deseas instalar un nuevo paquete solo para ti; no estará disponible para ningún otro usuario (cuenta) existente en tu computadora; | ||
+ | * Has decidido instalar un nuevo paquete para todo el sistema; tienes privilegios de administrador y no tienes miedo de utilizarlos. | ||
+ | |||
+ | Para distinguir entre estas dos acciones, pip emplea una opción dedicada llamada **%%--%%user** (observa el guión doble). La presencia de esta opción indica a pip que actúe localmente en nombre de tu usuario sin privilegios de administrador. | ||
+ | |||
+ | Si no agregas esto, pip asume que eres un administrador del sistema y no hará nada para corregirlo si no lo eres. | ||
+ | |||
+ | En nuestro caso, vamos a instalar un paquete llamado pygame: es una biblioteca extendida y compleja que permite a los programadores desarrollar juegos de computadora usando Python. | ||
+ | |||
+ | El proyecto ha estado en desarrollo desde el año 2000, por lo que es un código maduro y confiable. Si quieres saber más sobre el proyecto y sobre la comunidad que lo lidera, visita https:// | ||
+ | |||
+ | Si eres administrador del sistema, puedes instalar pygame usando el siguiente comando:< | ||
+ | |||
+ | Si no eres un administrador, | ||
+ | <code bash>pip install --user pygame</ | ||
+ | |||
+ | Depende de ti cuál de los procedimientos anteriores deseas que se lleve a cabo. | ||
+ | |||
+ | Pip tiene la costumbre de mostrar animaciones textuales sofisticadas que indican el progreso de la instalación, | ||
+ | |||
+ | Te alentamos a usar:< | ||
+ | y | ||
+ | <code bash>pip list</ | ||
+ | |||
+ | para obtener más información sobre lo que realmente sucedió. | ||
+ | |||
+ | Ahora que pygame es finalmente accesible, podemos intentar usarlo en un programa de prueba muy simple. Comentémoslo brevemente. | ||
+ | |||
+ | < | ||
+ | import pygame | ||
+ | |||
+ | run = True | ||
+ | width = 400 | ||
+ | height = 100 | ||
+ | pygame.init() | ||
+ | screen = pygame.display.set_mode((width, | ||
+ | font = pygame.font.SysFont(None, | ||
+ | text = font.render(" | ||
+ | screen.blit(text, | ||
+ | pygame.display.flip() | ||
+ | while run: | ||
+ | for event in pygame.event.get(): | ||
+ | if event.type == pygame.QUIT\ | ||
+ | or event.type == pygame.MOUSEBUTTONUP\ | ||
+ | or event.type == pygame.KEYUP: | ||
+ | run = False | ||
+ | </ | ||
+ | |||
+ | * La línea 1: importa pygame y nos permite usarlo. | ||
+ | * La línea 3: el programa se ejecutará mientras la variable run sea True. | ||
+ | * Las líneas 4 y 5: determinan el tamaño de la ventana. | ||
+ | * La línea 6: inicializa el entorno pygame. | ||
+ | * La línea 7: prepara la ventana de la aplicación y establece su tamaño. | ||
+ | * La línea 8: crea un objeto que represente la fuente predeterminada de 48 puntos. | ||
+ | * La línea 9: crea un objeto que represente un texto dado, el texto será suavizado (True) y blanco (255, | ||
+ | * La línea 10: inserta el texto en el búfer de pantalla (actualmente invisible). | ||
+ | * La línea 11: invierte los búferes de la pantalla para que el texto sea visible. | ||
+ | * La línea 12: el bucle principal de pygame comienza aquí. | ||
+ | * La línea 13: obtiene una lista de todos los eventos pendientes de pygame. | ||
+ | * Las líneas 14 a la 16: revisan si el usuario ha cerrado la ventana o ha hecho clic en algún lugar dentro de ella o ha pulsado alguna tecla. | ||
+ | * La línea 15: si es así, se deja de ejecutar el código. | ||
+ | |||
+ | El comando pip install tiene dos habilidades adicionales importantes: | ||
+ | |||
+ | * Es capaz de **actualizar** un paquete instalado localmente; por ejemplo, si deseas asegurarte de que estás utilizando la última versión de un paquete en particular, puedes ejecutar el siguiente comando:< | ||
+ | |||
+ | * Es capaz de **instalar una versión seleccionada por el usuario** de un paquete (pip instala por defecto la versión más **nueva** disponible); | ||
+ | |||
+ | (toma en cuenta el doble signo de igual), por ejemplo: | ||
+ | <code bash>pip install pygame==1.9.2</ | ||
+ | |||
+ | Si alguno de los paquetes instalados actualmente **ya no es necesario** y deseas deshacerte de el, pip también será útil. Su comando **uninstall** ejecutará todos los pasos necesarios. | ||
+ | |||
+ | La sintaxis requerida es clara y simple:< | ||
+ | |||
+ | Así que si ya no quieres pygame, puedes ejecutar el siguiente comando:< | ||
+ | |||
+ | Pip querrá saber si estás seguro de la elección que estás tomando; debes estar preparado para dar la respuesta correcta. | ||
+ | |||
+ | == Puntos Claves | ||
+ | 1. Un **repositorio** (o **repo** para abreviar) diseñado para recopilar y compartir código Python gratuito lleva por nombre **Python Package Index (PyPI)** aunque también es probable que te encuentres con el nombre de **The Cheese Shop (La Tienda de Queso)**. Su sitio web está disponible en https:// | ||
+ | |||
+ | 2. Para hacer uso de The Cheese Shop, se ha creado una herramienta especializada y su nombre es **pip** (**p**ip **i**nstala **p**aquetes mientras que pip significa ... ok, no importa). Como es posible que pip no se implemente como parte de la instalación estándar de Python, es posible que debas instalarlo manualmente. Pip es una herramienta de consola. | ||
+ | |||
+ | 3. Para verificar la versión de pip, se deben emitir los siguientes comandos:< | ||
+ | pip3 --version</ | ||
+ | |||
+ | Comprueba tu mismo cuál de estos funciona en el entorno de tu sistema operativo. | ||
+ | |||
+ | 4. La lista de las actividades principales de **pip** tiene el siguiente aspecto: | ||
+ | |||
+ | * **pip help operación_o_comando**: | ||
+ | * **pip list**: muestra una lista de los paquetes instalados actualmente. | ||
+ | * **pip show nombre_del_paquete**: | ||
+ | * **pip search cadena**: busca en los directorios de PyPI para encontrar paquetes cuyos nombres contengan cadena. | ||
+ | * **pip install nombre**: instala el paquete nombre en todo el sistema (espera problemas cuando no tengas privilegios de administrador). | ||
+ | * **pip install %%--%%user nombre**: instala nombre solo para ti; ningún otro usuario de la plataforma podrá utilizarlo. | ||
+ | * **pip install -U nombre**: actualiza un paquete previamente instalado. | ||
+ | * **pip uninstall nombre**: desinstala un paquete previamente instalado. |