Presentación
Las aplicaciones python utilizarán regularmente paquetes y módulos que no vienen como una característica de la biblioteca estándar. Las aplicaciones necesitarán de vez en cuando una adaptación particular de una biblioteca, sobre la base de que la aplicación puede necesitar que se haya corregido un error específico o que la aplicación se componga utilizando una forma desactualizada de la interfaz de la biblioteca.
Esto implica que puede no ser factible que un establecimiento de la pitón cumpla los requisitos previos de cada solicitud. Por si acaso la aplicación A necesita la adaptación 1.0 de un módulo específico, pero la aplicación B necesita la forma 2.0, en ese momento los prerrequisitos están en pugna y la introducción de la forma 1.0 o 2.0 dejará una aplicación incapaz de funcionar.
La respuesta a esta cuestión es hacer un dominio virtual, un árbol de registro independiente que contiene un establecimiento de Python para una forma específica de Python, además de algunos de los paquetes extra.
Las diversas aplicaciones podrían entonces utilizar diversas situaciones virtuales. Para determinar el caso anterior de necesidades contrapuestas, la aplicación A puede tener su propia condición virtual con la variante 1.0 introducida mientras que la aplicación B tiene otra condición virtual con la forma 2.0. En el caso de que la aplicación B requiera que una biblioteca se mueva a la variante 3.0, esto no influirá en la situación de la aplicación A.
12.2. Hacer situaciones virtuales
El módulo utilizado para hacer y supervisar situaciones virtuales se llama venv. venv normalmente introducirá la última variante de Python que tenga accesible. En caso de que tengas varias adaptaciones de Python en tu framework, puedes elegir una forma particular de Python ejecutando python3 o cualquier variante que necesites.
Para hacer un dominio virtual, colóquese en un registro en el que necesite ponerlo, y ejecute el módulo de venv como contenido con el modo de índice:
python3 -m venv tutorial-env
Esto hará que el ejercicio instructivo se convierta en un catálogo en caso de que no exista, y además hará índices dentro de él que contendrán un duplicado del traductor de Python, la biblioteca estándar, y diferentes documentos de apoyo.
Un área típica del catálogo para una situación virtual es .venv. Este nombre mantiene el catálogo normalmente cubierto en su plato y por lo tanto fuera del camino trillado, mientras que le da un nombre que aclara por qué existe el registro. Asimismo, anticipa el conflicto con los registros de definición de variables de condición del .env que algunos respaldos de herramientas.
Cuando hayas hecho una situación virtual, puedes activarla.
En Windows, corre:
Tutorial-environmental-Scripts-activar.bat
En Unix o MacOS, corre:
tutorial de la fuente-env/bin/activar
(Este guión está escrito para la concha del golpe. Si usas el csh o las conchas de pescado, hay scripts alternativos de activate.csh y activate.fish que deberías usar en su lugar).
Iniciar la condición virtual cambiará el informe de su concha para mostrar qué condición virtual está utilizando, y alterará la naturaleza con el objetivo de que al correr la pitón le dará esa forma específica y el establecimiento de la pitón. Por ejemplo:
(tutorial-env) $ pitón
Python 3.5.1 (por defecto, 6 de mayo de 2016, 10:59:36)
…
>>> sistema de importación
>>> ruta del sistema
[”, ‘/usr/local/lib/python35.zip’, ..,
~/envs/tutorial-env/lib/python3.5/site-packages’]
Manejo de paquetes con pip
Supervisar los paquetes con pip
Puedes introducir, revisar y expulsar paquetes utilizando un programa llamado pip. Por supuesto, pip introducirá paquetes del Archivo de Paquetes de Python, <https://pypi.org>. Puede examinar el Registro de Paquetes Python yendo a él en su navegador de Internet, o puede utilizar el resaltado de caza restringido de pip:
(tutorial-env) $ pip search astronomy
skyfield – Elegante astronomía para Python
gary – Astronomía galáctica y dinámica gravitacional.
novas – La biblioteca de astronomía del Observatorio Naval de los Estados Unidos NOVAS
astroobs – Proporciona efemérides astronómicas para planificar las observaciones con telescopio
Python – Una colección de herramientas relacionadas con la astronomía para Python.
…
Pip tiene varios subcomandos: “buscar”, “instalar”, “desinstalar”, “congelar”, etc. (Consulte la guía de instalación de módulos Python para una documentación completa de pip).
Puedes instalar la última versión de un paquete especificando el nombre del mismo:
(tutorial-env) $ pip instalar novas
Coleccionando novas
Descargando novas-3.1.1.3.tar.gz (136kB)
Instalación de paquetes recolectados: novas
Ejecutando setup.py install para novas
Instaló con éxito las novas-3.1.1.3
También puedes instalar una versión específica de un paquete dando el nombre del paquete seguido de == y el número de versión:
(tutorial-env) $ pip install requests==2.6.0
Recolección de solicitudes==2.6.0
Usando peticiones cacheadas-2.6.0-py2.py3-none-any.whl
Instalación de los paquetes recolectados: solicitudes
Solicitudes instaladas con éxito-2.6.0
En el caso de que vuelva a ejecutar esta orden, Pip verá que la mencionada variante está introducida a partir de ahora y se sentará ociosa. Puede suministrar un número de adaptación alternativo para obtener esa forma, o puede ejecutar pip introducir – subir para actualizar el paquete a la variante más reciente:
tutorial-env) $ pip install –upgrade requests
Recoger las solicitudes
Instalación de los paquetes recolectados: solicitudes
Instalación existente encontrada: solicitudes 2.6.0
Desinstalación de solicitudes-2.6.0:
Solicitudes desinstaladas con éxito-2.6.0
Solicitudes instaladas con éxito-2.7.0
La desinstalación de pip seguida de uno o más nombres de paquetes eliminará los paquetes del entorno virtual.
pip show mostrará información sobre un paquete en particular:
(tutorial-env) $ pip show requests
—
Versión de metadatos: 2.0
Nombre: solicitudes
Versión: 2.7.0
Resumen: HTTP de Python para humanos.
Página web: http://python-requests.org
Autor: Kenneth Reitz
Correo electrónico del autor: me@kennethreitz.com
Licencia: Apache 2.0
Ubicación: /Usuarios/akuchling/envs/tutorial-env/lib/python3.4/site-packages
Requiere:
pip list mostrará todos los paquetes instalados en el entorno virtual:
(tutorial-env) $ lista de pip
novas (3.1.1.3)
numpy (1.9.2)
pip (7.0.3)
solicitudes (2.7.0)
herramientas de configuración (16.0)
pip freeze producirá una lista similar de los paquetes instalados, pero la salida utiliza el formato que pip install espera. Una convención común es poner esta lista en un archivo requirements.txt:
(tutorial-env) $ pip freeze > requirements.txt
(tutorial-env) $ requisitos de los gatos.txt
novas==3.1.1.3
numpy==1.9.2
requests==2.7.0
El archivo requirements.txt puede entonces ser comprometido al control de versiones y enviado como parte de una aplicación. Los usuarios pueden entonces instalar todos los paquetes necesarios con install -r:
(tutorial-env) $ pip install -r requirements.txt
Recogiendo novas==3.1.1.3 (de -r requisitos.txt (línea 1))
…
Recogiendo numpy==1.9.2 (de -r requisitos.txt (línea 2))
…
Recolección de solicitudes==2.7.0 (de -r requisitos.txt (línea 3))
…
Instalando paquetes recolectados: novas, numpy, peticiones
Ejecutando setup.py install para novas
Instaló con éxito novas-3.1.1.3 numpy-1.9.2 solicitudes-2.7.0