web-dev-qa-db-fra.com

Que signifient les crochets dans l'installation de pip?

Je vois de plus en plus de commandes comme celle-ci:

$ pip install "splinter[Django]"

Que font ces crochets?

50
Babken Vardanyan

La syntaxe que vous utilisez est la suivante:

pip install "project[extra]"

Dans votre cas, vous êtes installing le package splinter qui prend en charge Django. Les crochets ([]) ne sont pas une syntaxe spécifique, juste une convention. Vraiment, vous installez le paquet nommé: "splinter[Django]".

Une explication de @chetner:

La commande pip install splinter Django installerait deux paquets nommés splinter et Django. splinter[Django], d'autre part, installe une variante du paquet splinter qui contient support pour Django. Notez que cela n’a rien à voir avec le paquet Django, mais qu’il s’agit simplement d’une chaîne définie par le paquet splinter pour un ensemble de fonctionnalités particulier activé.

51
Joe Iddon

Ce sont des extras de setuptools:

https://setuptools.readthedocs.io/en/latest/setuptools.html#declaring-extras-optional-features-with-the-own-own-dependencies

Parfois, un projet a des dépendances "recommandées", qui ne sont pas requises pour toutes les utilisations du projet. Par exemple, un projet peut offrir une sortie optionnelle PDF si ReportLab est installé et support reStructuredText si docutils est installé. Ces fonctionnalités facultatives sont appelées "extras" ...

6
Paul

C'est exactement la liste du setup.py fichier pour le projet dans question :

"Django": ["Django>=1.7.11;python_version<'3.0'", "Django>=2.0.6;python_version>'3.3'", "lxml>=2.3.6", "cssselect", "six"],
2
prosti