Veo más y más comandos como este:
$ pip install "splinter[django]"
¿Qué hacen estos corchetes?
Veo más y más comandos como este:
$ pip install "splinter[django]"
¿Qué hacen estos corchetes?
pip install "splinter[django]", para evitar cualquier expansión accidental de la capa del patrón.
Respuestas:
La sintaxis que está utilizando es:
pip install "project[extra]"
En su caso, usted es installingel splinterpaquete que tiene soporte adicional para django. Los corchetes ( []) no son una sintaxis específica, solo una convención. En realidad, se está instalando el paquete denominado: "splinter[django]".
Una explicación de @chetner:
El comando
pip install splinter djangoinstalaría dos paquetes llamadossplinterydjango.splinter[django], por otro lado, instala una variante delsplinterpaquete que contiene soporte paradjango. Tenga en cuenta que no tiene nada que ver con eldjangopaquete en sí, sino que es solo una cadena definida por elsplinterpaquete para un conjunto de características en particular que se habilita.
extrasignifica?
splintery django. splinter[django], por otro lado, instala una variante del splinterpaquete que contiene soporte para django. Tenga en cuenta que no tiene nada que ver con el djangopaquete en sí, sino que es solo una cadena definida por el splinterpaquete para un conjunto de características en particular que se habilita.
splintersigue siendo el nombre del paquete; pippor sí mismo lo analiza splinter[django]y lo reconoce como un nombre de paquete con un "argumento" adicional para ayudarlo a instalar los archivos correctos. La forma en que djangose interpreta el argumento depende completamente del setup.pyarchivo (¿o algún otro archivo de configuración? En realidad, no conozco los detalles) utilizado para definir el paquete splinter.
pip install splinterinstalará menos requisitos que pip install splinter[django]. Los paquetes adicionales que están instalados pueden de hecho (y probablemente lo hagan) permitir que funciones adicionales de splinter funcionen, pero no cambia nada sobre el paquete splinter en sí. Solo le dice a pip sobre dependencias adicionales.
[optional]en PIP significan dependencias opcionalesEn caso de que aparezca otro desarrollador que busque implementar este patrón en su propia implementación de paquete de Python, aquí hay una explicación más detallada de brackets []in pip.
Para instalar airflowdesde pip usamos este comando:
pip install 'apache-airflow'
Puede instalar componentes opcionales de flujo de aire con:
pip install 'apache-airflow[aws]'
# [optional] -----------^
Cuando buscamos PyPI para la apache-airflownota que los paquetes opcionales no aparecen:
pip search 'apache-airflow'
apache-airflow (1.10.9) - Programmatically author, schedule and monitor data pipelines
pylint-airflow (0.1.0a1) - A Pylint plugin to lint Apache Airflow code.
swe-airflow-tools (0.0.3) - Tools for Apache Airflow Application
airflow (0.6) - Placeholder for the old Airflow package
...
setup.pyPuede ver cómo se logró esto en el setup.py script
A la izquierda en setup.py- extras_requireestá definido.
A la derecha están los comandos de instalación correlacionados para estos subpaquetes opcionales.
Estoy bastante seguro de que estos son extras de herramientas de configuración:
A veces, un proyecto tiene dependencias "recomendadas", que no son necesarias para todos los usos del proyecto. Por ejemplo, un proyecto puede ofrecer salida en PDF opcional si ReportLab está instalado y soporte reStructuredText si está instalado docutils. Estas funciones opcionales se denominan "extras" ...