Categorías
Python

Las excepciones Python: una introducción

 

Tabla de Contenidos

  • Introducción a pip
  • Instalación de paquetes Con pipBasic paquete InstallationUsing Requisito FilesFine-Tuning RequirementsProduction vs requisitos de desarrollo DependenciesFreezing los requisitos de instalación de producción
  • paquete básico
  • Usando Requisito archivos
  • de Ajuste Fino
  • Producción vs desarrollo dependencias
  • Requisitos Congelar paquetes de producción
  • investigación para uso
  • desinstalar paquetes
  • Alternativas a pipConda lo hace AllPipenvPoetry
  • Conda lo hace todo
  • Pipenv
  • Poesía
  • Conclusión: ¿Qué es PIP? Instalación
  • paquete básico
  • Usando Requisito archivos
  • de Ajuste Fino Requisitos
  • Producción vs Desarrollo Dependencias
  • congelación requisitos para la producción
  • Conda lo hace todo
  • Pipenv
  • Poesía

¿Cuál es ¿pipa? pip es el gestor de paquetes estándar para Python. Se le permite instalar y administrar paquetes adicionales que no son parte de la biblioteca estándar de Python. Este tutorial es una introducción a pip para el nuevo Pythonistas.

En este tutorial, aprenderá acerca de:

  • Instalación de paquetes adicionales no incluidos en la distribución estándar de Python paquetes
  • Encontrar publican en el índice de paquetes de Python (PyPI)
  • Gestión de requisitos para las secuencias de comandos y aplicaciones
  • paquetes a desinstalar y sus dependencias

como se verá, la comunidad Python es muy activo y ha creado algunas alternativas ordenadas a pip que usted aprenderá más adelante en este tutorial. Bono

gratuito: 5 pensamientos sobre Python Maestría, un curso gratuito para los desarrolladores de Python que muestra la hoja de ruta y la mentalidad que necesita para tomar sus habilidades de Python al siguiente nivel.

Introducción a pip

Entonces, ¿qué es PIP? pip es un gestor de paquetes para Python. Eso significa que es una herramienta que le permite instalar y gestionar las librerías y dependencias que no se distribuyen como parte de la biblioteca estándar adicionales. gestión

paquete es tan importante que la pipa se ha incluido con el instalador Python ya que las versiones 3.4 para Python 3 y 2.7.9 para Python 2, y es utilizado por muchos proyectos de Python, lo que hace que sea una herramienta esencial para todos los Pythonista.

El concepto de un gestor de paquetes podría ser familiar para usted si usted viene de otros idiomas. NPM utiliza JavaScript para la gestión de paquetes, Ruby utiliza joya, y .NET uso NuGet. En Python, pip se ha convertido en el gestor de paquetes estándar.

El instalador instala Python pip, por lo que debe estar listo para su uso, a menos que haya instalado una versión antigua de Python. Usted puede verificar que el PIP está disponible al ejecutar el siguiente comando en la consola:

$ pip --version

pip 18.1 from C:\Python37\lib\site-packages\pip (python 3.7)

Debería ver una salida similar que muestra la versión PIP, así como la ubicación y la versión de Python. Si está utilizando una versión antigua de Python que no incluye PIP, a continuación, puede instalarlo siguiendo las instrucciones para su sistema en la documentación de instalación de pepita.

Es posible que desee seguir los ejemplos de este tutorial dentro de un entorno virtual para evitar la instalación de paquetes para la instalación global de Python. Usted puede aprender sobre los entornos virtuales en entornos virtuales de Python: Una cartilla. La sección entornos virtuales utilizando de ese artículo se explican los conceptos básicos de la creación de nuevos entornos virtuales.

Instalación de paquetes con la pipa

Python se considera una lengua incluida baterías. Esto significa que la biblioteca estándar de Python incluye un amplio conjunto de paquetes y módulos a los desarrolladores de ayuda con sus secuencias de comandos y aplicaciones.

Al mismo tiempo, Python tiene una comunidad muy activa que contribuye aún más grande un conjunto de paquetes que pueden ayudarle con sus necesidades de desarrollo. Estos paquetes se publican en el índice de paquetes Python, también conocido como PyPI (pronunciado Pie guisante ojo). PyPI alberga una amplia colección de paquetes que incluyen marcos de desarrollo, herramientas y bibliotecas.

Muchos de estos paquetes simplifican el desarrollo de Python proporcionando interfaces amigables a la funcionalidad que ya existe en la biblioteca estándar. Por ejemplo, puede escribir un script que recupera los contenidos de una página web utilizando sólo las librerías estándar incluidas con Python:

# In using-http.py

import cgi
import http.client

server = 'www.google.com'
url = '/'
conn = http.client.HTTPSConnection(server)
conn.request('GET', url)
response = conn.getresponse()
content_type = response.headers.get('Content-Type')
_, params = cgi.parse_header(content_type)
encoding = params.get('charset')
data = response.read()
text = data.decode(encoding)

print(f'Response returned: {response.status} ({response.reason})')
print('Body:')
print(text)

En este script, se importa cgi y http.client, los cuales están incluidos en la biblioteca estándar de Python . Se crea un objeto HTTPSConnection especificar el servidor de e invocar su .request () y .getresponse () para recuperar una respuesta.

partir de la respuesta, se puede recuperar la cabecera Content-Type y analizarlo usando el módulo de CGI para extraer el juego de caracteres en el que se codifica la página.

cgi.parse_header () devuelve una tupla con un valor principal y un diccionario de parámetros. Por ejemplo, la cabecera Content-Type podría contener un valor como text / html; charset = ISO-8859-1.

La tupla contendrá la cadena de texto / html como el primer elemento y el segundo elemento será un diccionario en forma { ‘charset’: ‘ISO-8859-1’}. Debido a que sólo se preocupan por el parámetro charset, se puede pasar por alto el principio de la tupla usando un guión: _, params = cgi.parse_header (content_type).

Nota: el significado de subrayados en Python explica cómo utilizar guiones bajos a los valores de desempaquetado de una tupla.

Una vez que tenga la codificación de la página, se puede leer la respuesta y decodificar en texto. Puede ejecutar el ejemplo de la consola para ver cómo funciona:

$ python using-http.py

Response returned: 200 (OK)
Body:
... Additional Output Omitted

Este parece ser un montón de trabajo para un pequeño script que recupera los contenidos de una página web. Afortunadamente, hay un paquete Python que simplifica peticiones HTTP y proporciona una interfaz agradable para hacer exactamente lo que quiere. Instalación

paquete básico

PyPI alberga una biblioteca muy popular para realizar peticiones HTTP llamada solicitudes. Usted puede aprender todo sobre él en su sitio oficial de la documentación.

El primer paso es instalar el paquete de peticiones en su entorno. Usted puede aprender acerca de los comandos soportados pip ejecutándolo con la ayuda:

$ pip help

Usage:
pip [options]

Commands:
install Install packages.
download Download packages.
uninstall Uninstall packages.
freeze Output installed packages in requirements format.
list List installed packages.
show Show information about installed packages.
check Verify installed packages have compatible
dependencies.
config Manage local and global configuration.
search Search PyPI for packages.
wheel Build wheels from your requirements.
hash Compute hashes of package archives.
completion A helper command used for command completion.
help Show help for commands.

General Options:
-h, --help Show help.
--isolated Run pip in an isolated mode, ignoring environment
variables and user configuration.
-v, --verbose Give more output. Option is additive, and can be
used up to 3 times.
-V, --version Show version and exit.
-q, --quiet Give less output. Option is additive, and can be
used up to 3 times (corresponding to WARNING,
ERROR, and CRITICAL logging levels).
--log Path to a verbose appending log.
--proxy Specify a proxy in the form
[user:passwd@]proxy.server:port.
--retries Maximum number of retries each connection should
attempt (default 5 times).
--timeout Set the socket timeout (default 15 seconds).
--exists-action Default action when a path already exists:
(s)witch, (i)gnore, (w)ipe, (b)ackup, (a)bort).
--trusted-host Mark this host as trusted, even though it does
not have valid or any HTTPS.
--cert Path to alternate CA bundle.
--client-cert Path to SSL client certificate, a single file
containing the private key and the certificate in
PEM format.
--cache-dir

Store the cache data in .
--no-cache-dir Disable the cache.
--disable-pip-version-check
Don't periodically check PyPI to determine
whether a new version of pip is available for
download. Implied with --no-index.

Como se puede ver, pip proporciona un mandato de instalación para instalar los paquetes. Se puede ejecutar para instalar el paquete de solicitudes:

$ pip install requests

Looking in indexes: https://pypi.org/simple
Collecting requests
Using cached
https://files.pythonhosted.org/packages/7d/e3/
20f3d364d6c8e5d2353c72a67778eb189176f08e873c9900e10c0287b84b/
requests-2.21.0-py2.py3-none-any.whl
Collecting chardet<3.1.0,>=3.0.2 (from requests)
Using cached https://files.pythonhosted.org/packages/bc/a9/
01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/
chardet-3.0.4-py2.py3-none-any.whl
Collecting idna<2.9,>=2.5 (from requests)
Using cached https://files.pythonhosted.org/packages/14/2c/
cd551d81dbe15200be1cf41cd03869a46fe7226e7450af7a6545bfc474c9/
idna-2.8-py2.py3-none-any.whl
Collecting urllib3<1.25,>=1.21.1 (from requests)
Using cached https://files.pythonhosted.org/packages/62/00/
ee1d7de624db8ba7090d1226aebefab96a2c71cd5cfa7629d6ad3f61b79e/
urllib3-1.24.1-py2.py3-none-any.whl
Collecting certifi>=2017.4.17 (from requests)
Using cached https://files.pythonhosted.org/packages/9f/e0/
accfc1b56b57e9750eba272e24c4dddeac86852c2bebd1236674d7887e8a/
certifi-2018.11.29-py2.py3-none-any.whl
Installing collected packages: chardet, idna, urllib3, certifi, requests
Successfully installed certifi-2018.11.29 chardet-3.0.4 idna-2.8
requests-2.21.0 urllib3-1.24.1
You are using pip version 18.1, however version 19.0.1 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip'
command.

Debería ver una salida similar a la de arriba. Se utiliza PIP con un mandato de instalación seguido por el nombre del paquete que desea instalar. miradas de pepita para el paquete en PyPI, calcula sus dependencias, y las instala para asegurar solicitudes funcionarán.

También se puede ver que el entorno actual está utilizando la versión 18.1 de pepita, pero la versión 19.0.1 está disponible. También muestra el comando que debe usar para la actualización de pepita, así que vamos a hacer lo siguiente:

$ python -m pip install --upgrade pip

Looking in indexes: https://pypi.org/simple
Collecting pip
Downloading https://files.pythonhosted.org/packages/46/dc/
7fd5df840efb3e56c8b4f768793a237ec4ee59891959d6a215d63f727023/
pip-19.0.1-py2.py3-none-any.whl (1.4MB)
100% |████████████████████████████████| 1.4MB 2.0MB/s
Installing collected packages: pip
Found existing installation: pip 18.1
Uninstalling pip-18.1:
Successfully uninstalled pip-18.1
Successfully installed pip-19.0.1

en cuenta que se utiliza -m pitón a la actualización de pepita. El modificador -m le dice a Python para ejecutar un módulo como un archivo ejecutable. Esto es necesario porque con el fin de actualizar la pipa, la versión antigua tiene que ser desinstalado antes de instalar la nueva versión, y retirarlo durante la ejecución de la herramienta puede provocar errores.

Cuando se ejecuta pip como un módulo, Python carga el módulo en la memoria y permite que el paquete sea retirada mientras se está utilizando. Puede ejecutar paquetes como si fueran guiones si el paquete proporciona una secuencia de comandos __main__.py de nivel superior.

Ahora que ha instalado solicitudes y PIP actualizado, puede utilizar el comando lista para ver los paquetes instalados en su entorno:

$ pip list

Package Version
---------- ----------
certifi 2018.11.29
chardet 3.0.4
idna 2.8
pip 19.0.1
requests 2.21.0
setuptools 40.6.2
urllib3 1.24.1

Como se puede ver, pipa ha sido actualizado a la versión 19.0.1 (la versión más reciente en el momento), y las solicitudes versión 2.21.0 se ha instalado.

El pip install comando busca siempre la versión más reciente del paquete y lo instala. También búsquedas de dependencias que figuran en el paquete de metadatos e instala las dependencias para asegurar que el paquete tiene todos los requisitos necesarios.

Como se puede ver, se han instalado varios paquetes. Usted puede mirar en el paquete de metadatos utilizando el comando show en pip:

$ pip show requests

Name: requests
Version: 2.21.0
Summary: Python HTTP for Humans.
Home-page: http://python-requests.org
Author: Kenneth Reitz
Author-email: me@kennethreitz.org
License: Apache 2.0
Location: py37\lib\site-packages
Requires: certifi, chardet, idna, urllib3
Required-by:

El listas de metadatos certifi, Chardet, IDNA y urllib3 como dependencias, y se puede ver que también se instalaron.

Con las solicitudes paquete instalado, puede modificar el ejemplo anterior y ver lo fácil que es para recuperar el contenido de una página web:

# In using-requests.py

import requests

url = 'https://www.google.com'
response = requests.get(url)
print(f'Response returned: {response.status_code}, {response.reason}')
print(response.text)

Puede importar el paquete de peticiones como cualquier otro paquete estándar porque ya está instalado en su ambiente.

Como se puede ver, requests.get () se encarga de la conexión HTTP para usted y devuelve un objeto de respuesta similar al ejemplo original, pero con algunas mejoras en la interfaz.

Usted no tiene que hacer frente a la codificación de la página ya que las peticiones que se encargará de que en la mayoría de las situaciones. Aún así, las solicitudes proporciona una interfaz flexible para manejar casos especiales a través del objeto requests.Response.

Usando Requisito archivos

El PIP mandato de instalación siempre instala la última versión publicada de un paquete, pero a veces, es posible que desee instalar una versión específica que sepa que funciona con su código.

Desea crear una especificación de las dependencias y versiones que ha utilizado para desarrollar y probar la aplicación, por lo que no hay sorpresas cuando se utiliza la aplicación en la producción. Requisito archivos

permiten especificar exactamente donde se instalarán los paquetes y versiones. Ejecución de programas de ayuda de pepita que hay un comando de congelación que las salidas de los paquetes instalados en formato requisitos. Puede utilizar este comando, redirigiendo la salida a un archivo para generar un archivo de requisitos:

$ pip freeze > requirements.txt
$ cat requirements.txt

certifi==2018.11.29
chardet==3.0.4
idna==2.8
requests==2.21.0
urllib3==1.24.1

El comando de congelación vuelca todos los paquetes y sus versiones en la salida estándar, por lo que puede redirigir la salida a un archivo que se puede utilizar para instalar los requisitos exactos en otro sistema. La convención, se nombra este archivo requirements.txt, pero puede darle el nombre que desee.

Cuando se desea replicar el entorno en el otro sistema, puede ejecutar pip instalar especificando el archivo de requisitos con el interruptor -r:

$ pip install -r requirements.txt

Looking in indexes: https://pypi.org/simple
Collecting certifi==2018.11.29 (from -r .\requirements.txt (line 1))
Using cached https://files.pythonhosted.org/packages/9f/e0/
accfc1b56b57e9750eba272e24c4dddeac86852c2bebd1236674d7887e8a/
certifi-2018.11.29-py2.py3-none-any.whl
Collecting chardet==3.0.4 (from -r .\requirements.txt (line 2))
Using cached https://files.pythonhosted.org/packages/bc/a9/
01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/
chardet-3.0.4-py2.py3-none-any.whl
Collecting idna==2.8 (from -r .\requirements.txt (line 3))
Using cached https://files.pythonhosted.org/packages/14/2c/
cd551d81dbe15200be1cf41cd03869a46fe7226e7450af7a6545bfc474c9/
idna-2.8-py2.py3-none-any.whl
Collecting requests==2.21.0 (from -r .\requirements.txt (line 4))
Using cached https://files.pythonhosted.org/packages/7d/e3/
20f3d364d6c8e5d2353c72a67778eb189176f08e873c9900e10c0287b84b/
requests-2.21.0-py2.py3-none-any.whl
Collecting urllib3==1.24.1 (from -r .\requirements.txt (line 5))
Using cached https://files.pythonhosted.org/packages/62/00/
ee1d7de624db8ba7090d1226aebefab96a2c71cd5cfa7629d6ad3f61b79e/
urllib3-1.24.1-py2.py3-none-any.whl
Installing collected packages: certifi, chardet, idna, urllib3, requests
Successfully installed certifi-2018.11.29 chardet-3.0.4 idna-2.8
requests-2.21.0 urllib3-1.24.1

Las versiones de los paquetes coincidirán con los que figuran en requirements.txt:

$ pip list

Package Version
---------- ----------
certifi 2018.11.29
chardet 3.0.4
idna 2.8
pip 19.0.1
requests 2.21.0
setuptools 40.6.2
urllib3 1.24.1

Puede enviar el archivo requirements.txt en control de código fuente y utilizarlo para crear el ambiente exacto en otras máquinas.

Requisitos de Ajuste Fino

El problema con hardcoding las versiones de los paquetes y sus dependencias es que los paquetes de programas se actualizan constantemente con correcciones de errores y de seguridad, y es probable que quieren aprovechar los tan pronto como se publiquen.

El formato de archivo de requisitos le permite especificar las versiones de dependencia mediante operadores lógicos que le dan un poco de flexibilidad para asegurar los paquetes se actualizan, pero aún así definir las versiones base de un paquete.

Abrir el archivo requirements.txt en su editor favorito y realizar los siguientes cambios:

certifi>=2018.11.29
chardet>=3.0.4
idna>=2.8
requests>=2.21.0
urllib3>=1.24.1

Puede cambiar el operador lógico > = a decir pip para instalar una versión exacta o mayor que se ha publicado. Cuando se establece un nuevo entorno usando el archivo requirments.txt, miradas de pepita para la versión más reciente que satisface el requisito y lo instala. Puede actualizar los paquetes en el archivo de requisitos mediante la ejecución del comando de instalación con el interruptor –upgrade:

$ pip install --upgrade -r requirements.txt

Looking in indexes: https://pypi.org/simple
Requirement already up-to-date: certifi==2018.11.29 in \py37\lib\site-packages
(from -r .\requirements.txt (line 1)) (2018.11.29)
Requirement already up-to-date: chardet==3.0.4 in \py37\lib\site-packages
(from -r .\requirements.txt (line 2)) (3.0.4)
Requirement already up-to-date: idna==2.8 in \py37\lib\site-packages
(from -r .\requirements.txt (line 3)) (2.8)
Requirement already up-to-date: requests==2.21.0 in \py37\lib\site-packages
(from -r .\requirements.txt (line 4)) (2.21.0)
Requirement already up-to-date: urllib3==1.24.1 in \py37\lib\site-packages
(from -r .\requirements.txt (line 5)) (1.24.1)

Nada fue actualizado debido a que tiene las últimas versiones, pero si hay una nueva versión fue publicada por un paquete de la lista, para que el paquete han sido actualizados.

En un mundo ideal, las nuevas versiones de los paquetes sería compatible con versiones anteriores y nunca introducir nuevos errores. Por desgracia, las nuevas versiones se pueden introducir cambios que rompan su aplicación. La sintaxis del archivo es compatible con los requisitos de la versión especificadores adicionales para afinar sus necesidades. digamos de

Let que una nueva versión 3.0 de solicitudes se publica, sino que introduce un cambio incompatible que rompe su aplicación. Puede modificar el archivo de requisitos para evitar 3.0 o superior se instale:

certifi>=2018.11.29
chardet>=3.0.4
idna>=2.8
requests>=2.21.0, <3.0 urllib3>=1.24.1

Cambiar el especificador de versión de los paquetes de solicitudes asegura que cualquier versión de mayor o igual a 3.0 no se instalan. La documentación PIP proporciona toda la información sobre el formato de archivo de los requisitos, y se puede consultar para aprender más sobre él.

Producción vs Desarrollo Dependencias

No

todos los paquetes que se instalan durante el desarrollo de sus aplicaciones van a ser dependencias de la aplicación. Hay muchos paquetes publicados hasta la PyPI que son herramientas de desarrollo o bibliotecas que desea apalancamiento durante el proceso de desarrollo.

A modo de ejemplo, es probable que quieren poner a prueba la unidad de su aplicación, por lo que necesita un marco de pruebas unitarias. Un marco popular para las pruebas unitarias es PYtest. Cuando se desea instalar en su entorno de desarrollo, pero que no desea en su entorno de producción, ya que no es una dependencia de la aplicación.

Se crea un segundo archivo de requisitos (requirements_dev.txt) a la lista de herramientas adicionales para configurar un entorno de desarrollo:

# In requirements_dev.txt
pytest>=4.2.0

Esto requiere el uso de PIP para instalar ambos archivos requisito: requirements.txt y requirements_dev.txt. Afortunadamente, PIP le permite especificar parámetros adicionales dentro de un archivo de requerimientos. Puede modificar requirements_dev.txt a instalar también los requisitos del archivo requirements.txt producción:

# In requirements_dev.txt
-r requirements.txt
pytest>=4.2.0

en cuenta que está utilizando el mismo conmutador -r exacta para instalar el archivo requirements.txt producción. El formato de archivo de requisitos permite especificar argumentos adicionales a la derecha en un archivo de requisitos.

Requisitos Congelar Producción

Se crearon los archivos de producción y requisitos de desarrollo y les añaden a control de código fuente. Los archivos utilizan especificadores versión flexibles para asegurar que permite aprovechar los arreglos publicados por sus dependencias. También está probando su aplicación y está listo para pasarlo a producción.

Es posible que desee asegurarse de que las versiones de las dependencias se despliegan en la producción son las mismas versiones exacta que utilizó en su canal de integración o proceso de construcción porque sabes pasan todas las pruebas y funciona la aplicación.

La versión especificadores actuales no garantizan que las mismas versiones serán desplegados a la producción, por lo que desea congelar los requisitos de producción como se vio anteriormente.

Se crea un entorno virtual producción limpia e instalar los requisitos de producción utilizando el archivo de requirements.txt. Una vez instalados los requisitos, se puede congelar las versiones específicas, el vertido de la salida a un archivo requirements_lock.txt que se utiliza en la producción. El archivo requirements_lock.txt contendrá versiones exactas especificadores y se puede utilizar para replicar el medio ambiente. Paquetes

investigación para uso

A medida que se convierten en un Pythonista más experimentado, habrá un conjunto de paquetes que usted va a saber de memoria y que vamos a usar en la mayoría de sus aplicaciones. Las solicitudes y paquetes PYtest son buenos candidatos para convertirse en herramientas útiles en su caja de herramientas Python.

Habrá ocasiones, aunque cuando tendrá que resolver un problema diferente, y usted va a querer buscar una herramienta o una biblioteca diferente que le puede ayudar con él. Como se puede ver arriba, pipa de ayuda muestra que hay una orden de búsqueda que busca paquetes publicados a PyPI. Véase la

Let cómo este comando nos puede ayudar:

$ pip help search

Usage:
pip search [options]

Description:
Search for PyPI packages whose name or summary contains .

Search Options:
-i, --index Base URL of Python Package Index
(default https://pypi.org/pypi)

General Options:
-h, --help Show help.
--isolated Run pip in an isolated mode, ignoring environment
variables and user configuration.
-v, --verbose Give more output. Option is additive, and can be
used up to 3 times.
-V, --version Show version and exit.
-q, --quiet Give less output. Option is additive, and can be
used up to 3 times (corresponding to WARNING,
ERROR, and CRITICAL logging levels).
--log Path to a verbose appending log.
--proxy Specify a proxy in the form
[user:passwd@]proxy.server:port.
--retries Maximum number of retries each connection should
attempt (default 5 times).
--timeout Set the socket timeout (default 15 seconds).
--exists-action Default action when a path already exists:
(s)witch, (i)gnore, (w)ipe, (b)ackup, (a)bort).
--trusted-host Mark this host as trusted, even though it does
not have valid or any HTTPS.
--cert Path to alternate CA bundle.
--client-cert Path to SSL client certificate, a single file
containing the private key and the certificate in
PEM format.
--cache-dir

Store the cache data in .
--no-cache-dir Disable the cache.
--disable-pip-version-check
Don't periodically check PyPI to determine
whether a new version of pip is available for
download. Implied with --no-index.
--no-color Suppress colored output

El comando toma un conjunto de opciones enumeradas anteriormente, y un . La consulta es sólo una cadena para buscar y coincidirá con paquetes y sus descripciones.

Nota: Puede utilizar pip ayuda para recuperar información adicional acerca de un comando apoyado. de

Digamos que sus necesidades de aplicación acceder a un servicio que está utilizando OAuth2 de autorización. Idealmente, hay una biblioteca que funciona con solicitudes o con una interfaz similar que nos puede ayudar. Vamos a buscar PyPI por ello el uso de PIP:

$ pip search requests oauth

requests-oauth (0.4.1) - Hook for adding Open Authentication
support to Python-requests HTTP library.
oauth (1.0.1) - Library for OAuth version 1.0a.
pmr2.oauth (0.6.1) - OAuth PAS Plugin, OAuth 1.0 provider for
Plone.
oauth-proxy (1.0.5) - OAuth HTTP proxy
django-oauth (1.1) - Support of OAuth in Django.
intuit-oauth (1.2.0) - Intuit OAuth Client
brubeck-oauth (0.1.11) - Brubeck OAuth module
guillotina-oauth (2.0.0) - guillotina oauth support
httpie-oauth (1.0.2) - OAuth plugin for HTTPie.
paytm-oauth (0.2) - Consumer for paytm oauth
plurk-oauth (0.9.2) - Plurk OAuth API
oauth-flow (1.0.3) - Authenticate and make calls to OAuth 1.0,
OAuth 2.0 services
... Additional Output Omitted

Los rendimientos de búsqueda plazo toda una extensa colección de paquetes. Algunos de ellos parecen específico para un servicio o tecnología como django-oauth. Otros parecen prometedores, como las solicitudes-oauth. Por desgracia, no hay mucha información que no sea una descripción breve.

mayor parte del tiempo, que desea buscar paquetes directamente en la página web PyPI. PyPI proporciona capacidades de búsqueda de su índice y una manera de filtrar los resultados por los metadatos expuestos en el paquete, como marco, el tema, el estado de desarrollo, y así sucesivamente.

Una búsqueda de los mismos términos en PyPI produce una gran cantidad de resultados, pero se puede filtrarlos por diferentes categorías. Por ejemplo, se puede ampliar el Destinatarios y seleccione Desarrolladores ya que desea una biblioteca que le ayuda con el desarrollo de su aplicación. Además, es probable que desee un paquete que es estable y listo para la producción. Puede ampliar la categoría de estado Desarrollo y seleccione Producción / Estable :

Se pueden aplicar filtros adicionales y ajustar los términos de búsqueda hasta que encuentre el paquete que está buscando.

Los resultados proporcionan un enlace a la página del paquete, que contiene más información y es de esperar algún tipo de documentación. Vamos a echar un vistazo a la información de las solicitudes de oauth2-:

La página del proyecto proporciona más información, y parece tener un enlace a la página web del proyecto. El enlace que lleva al repositorio del proyecto en GitHub. Allí, se puede ver algo más de información sobre el proyecto y algunos ejemplos de uso.

Encontrar el repositorio de código fuente original puede ser un recurso muy valioso. Allí, se pueden encontrar algunos consejos sobre el estado del proyecto examinado la fecha de las últimas confirmaciones, número de solicitud de extracción y cuestiones abiertas, y así sucesivamente.

Otra opción para encontrar un paquete es que Google. bibliotecas de Python utilizados ampliamente se mostrarán en la parte superior de las búsquedas de Google, y usted debería ser capaz de encontrar un enlace al paquete de PyPI o su repositorio de código fuente.

Encontrando el paquete adecuado puede tomar algún tiempo y la investigación, sino que también acelerará su proceso de desarrollo, una vez que lo encuentres.

desinstalar paquetes

De vez en cuando, usted tendrá que desinstalar un paquete. Encontraste ya sea una mejor biblioteca para reemplazarla, o si es algo que realmente no necesita. Desinstalación de paquetes puede ser un poco complicado.

en cuenta que, durante la instalación de las solicitudes, pipa de instalar otras dependencias también. Los más paquetes de instalar, más grandes son las posibilidades de que múltiples paquetes dependen de la misma dependencia. Aquí es donde el comando show en pip viene muy bien.

Antes de desinstalar un paquete, asegúrese de ejecutar el comando show para ese paquete:

$ pip show requests

Name: requests
Version: 2.21.0
Summary: Python HTTP for Humans.
Home-page: http://python-requests.org
Author: Kenneth Reitz
Author-email: me@kennethreitz.org
License: Apache 2.0
Location: c:\users\isaac\projects\virtualenv\py37\lib\site-packages
Requires: urllib3, certifi, chardet, idna
Required-by:

Aviso los dos últimos campos requiere y requeridos por. El comando show nos dice que las solicitudes requiere urllib3, certifi, Chardet, y IDNA. Es posible que desee desinstalar los dos. También se puede ver que las solicitudes no es requerido por cualquier otro paquete, por lo que es seguro para desinstalarlo.

Debe ejecutar el comando show frente a todas las dependencias de solicitudes para asegurarse de que no hay otras bibliotecas también dependen de ellos. Una vez que entienda el orden de dependencia de los paquetes que desea desinstalar, se pueden quitar usando el comando de desinstalación:

$ pip uninstall certifi

Uninstalling certifi-2018.11.29:
Would remove:
\py37\lib\site-packages\certifi-2018.11.29.dist-info\*
\py37\lib\site-packages\certifi\*
Proceed (y
)? y
Successfully uninstalled certifi-2018.11.29

La desinstalación de un paquete de programas que los archivos que se eliminarán y le pedirá confirmación. Si está seguro de que desea eliminar el paquete porque se ha comprobado sus dependencias y saber que nada lo está utilizando, puede pasar un interruptor -y para suprimir la lista de archivos y la confirmación:

$ pip uninstall urllib3 -y

Uninstalling urllib3-1.24.1:
Successfully uninstalled urllib3-1.24.1

$ pip uninstall chardet -y

Uninstalling chardet-3.0.4:
Successfully uninstalled chardet-3.0.4

$ pip uninstall idna -y

Uninstalling idna-2.8:
Successfully uninstalled idna-2.8

$ pip uninstall requests -y

Uninstalling requests-2.21.0:
Successfully uninstalled requests-2.21.0

Puede especificar todos los paquetes que desea desinstalar en una sola llamada: pip desinstalación -y urllib3 Chardet IDNA solicitudes.

También puede desinstalar todos los paquetes listados en un fichero de requisitos, proporcionando el archivo -R. El comando le pedirá confirmación para cada paquete individual, pero se puede suprimirlo, si sabes lo que estás haciendo, con el interruptor -y:

$ pip uninstall -r requirements.txt -y

Uninstalling certifi-2018.11.29:
Successfully uninstalled certifi-2018.11.29
Uninstalling chardet-3.0.4:
Successfully uninstalled chardet-3.0.4
Uninstalling idna-2.8:
Successfully uninstalled idna-2.8
Uninstalling requests-2.21.0:
Successfully uninstalled requests-2.21.0
Uninstalling urllib3-1.24.1:
Successfully uninstalled urllib3-1.24.1

Recuerde siempre revisar las dependencias de paquetes que desea desinstalar. Es posible que desee desinstalar todas sus dependencias, pero la desinstalación de un paquete que está siendo usada por otros romperá su aplicación.

Alternativas a pip pip

es una herramienta esencial para todos Pythonistas, y es utilizado por muchas aplicaciones y proyectos para la gestión de paquetes. Este tutorial le ha ayudado con lo básico, pero la comunidad Python es muy activo en la prestación de excelentes herramientas y bibliotecas de otros desarrolladores usar. Estos incluyen otras alternativas a pip que tratan de simplificar y mejorar la gestión de paquetes.

En esta sección, usted aprenderá acerca de otras herramientas de gestión de paquetes disponibles para Python.

Conda lo hace todo

Conda es un paquete, dependencia y gerente de medio ambiente durante muchos idiomas, incluyendo Python. De hecho, su origen proviene de Anaconda, que comenzó como un paquete de datos para la ciencia Python.

Conda es ampliamente utilizado para la ciencia de datos y aplicaciones de aprendizaje automático, y utiliza su propio índice de paquetes compatibles acogida.

Conda no sólo le permite gestionar las dependencias de paquetes, sino que también gestiona los entornos virtuales para sus aplicaciones, se instala distribuciones Python compatibles y paquetes de su aplicación para el despliegue de producción.

Configuración de Python para aprendizaje automático en Windows es una gran introducción a Conda que explora Gestión de paquetes y medio ambiente. La única información específica de Windows es de alrededor de la instalación, lo que es todavía relevante si se utiliza una plataforma de sistema operativo diferente.

Pipenv

Pipenv es otra herramienta de gestión de paquetes que “tiene como objetivo lograr que el mejor de todos los mundos de embalaje” a Python. Está ganando mucha fuerza entre la comunidad Python, ya que se fusiona entorno virtual y gestión de paquetes en una sola herramienta.

También resuelve algunos de los más comunes hipo que se ejecutará en la hora de gestionar manualmente las dependencias a través de pepita, como versiones de los paquetes, la separación de las dependencias de desarrollo y producción, y las versiones para la producción de bloqueo.

Pipenv: Una guía para el Nuevo Python Packaging Tool es un gran comienzo para aprender sobre Pipenv y su enfoque a la gestión de paquetes. A pesar de que el artículo está marcado como intermedio, el autor hace un gran trabajo de guiar al lector que el artículo es accesible a cualquier persona que comienza con Python.

Poesía

La poesía es otra alternativa PIP que está ganando mucha fuerza. Al igual que Pipenv, que simplifica la gestión de versión del paquete y separa el desarrollo frente a las dependencias de producción, y funciona mediante el aislamiento de esas dependencias en un entorno virtual.

Si viene desde JavaScript y NPM, a continuación, Poesía será muy familiar. Va más allá de la gestión de paquetes, lo que ayuda a construir las distribuciones para sus aplicaciones y bibliotecas y de distribuirlos a los PyPI. Cómo publicar un paquete de Python de código abierto a PyPI tiene una buena introducción a la poesía y puede ayudarle a empezar.

Conclusión: ¿Qué es PIP?

Este tutorial responde a la pregunta, ¿cuál es PIP? Usted ha visto que el PIP es un gestor de paquetes para Python, utilizado por muchos proyectos para gestionar dependencias. Está incluido con el instalador de Python, lo que hace que sea una herramienta esencial para todos los Pythonistas saber cómo utilizar.

Python proporciona una extensa biblioteca estándar adecuado para el desarrollo de todo tipo de aplicaciones, pero la comunidad Python activa proporciona un conjunto aún más amplio de herramientas y bibliotecas que aceleran el desarrollo de aplicaciones Python.

Estas herramientas y bibliotecas se publican en el índice de paquetes de Python (PyPI), y PIP permite a los desarrolladores para instalarlos en sus entornos de aplicaciones.

En este tutorial, que ha aprendido sobre: ​​

  • Instalación de nuevos paquetes usando pip en la línea de comandos y con archivos requisito
  • Gestión de dependencias, la separación de las necesidades de desarrollo y producción, y la creación de un requisitos cerradas presentar paquetes
  • Finding a través PIP y PyPI
  • Evaluación de las dependencias del paquete antes de desinstalar un paquete y cómo paquetes desinstala pip

Además, han aprendido sobre la importancia de mantener las dependencias hasta la fecha y las alternativas a la pipa que pueden ayudarle a manejar esas dependencias.

no dude en llegar en la sección de comentarios con cualquier pregunta que pueda tener, y siempre se puede obtener más información en la página de documentación de pepita.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *