Veo más y más comandos como este:
$ pip install "splinter[django]"
¿Qué hacen estos corchetes?
La sintaxis que estás usando es:
pip install "project[extra]"
En su caso, está installing
el paquete splinter
que tiene soporte adicional para django
. Los corchetes ( []
) no son una sintaxis específica, solo una convención. Realmente, está instalando el paquete llamado: "splinter[django]"
.
Una explicación de @chetner
:
El comando
pip install splinter django
instalaría dos paquetes llamadossplinter
ydjango
.splinter[django]
, por otro lado, instala una variante del paquetesplinter
que contiene soporte paradjango
. Tenga en cuenta que no tiene nada que ver con el paquetedjango
en sí, sino que es solo una cadena definida por el paquetesplinter
para un conjunto de características particular que se habilita.
[optional]
en PIP significan dependencias opcionales En caso de que aparezca otro desarrollador buscando implementar este patrón en su propia implementación de paquetes de Python, aquí hay una explicación más detallada de los brackets []
en pip.
Para instalar airflow
desde 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 apache-airflow
airflow en pypi, tenga en cuenta 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.py
Puede ver cómo se logró esto en el script setup.py
A la izquierda en setup.py
- se define extras_require
.
A la derecha están los comandos de instalación correlacionados para estos subpaquetes opcionales.
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 una salida PDF opcional si ReportLab está instalado y compatibilidad con reStructuredText si docutils está instalado. Estas características opcionales se denominan "extras"...