Что означают квадратные скобки в установке pip?

Я вижу все больше и больше таких команд:

$ pip install "splinter[django]"

Что делают эти квадратные скобки?

Ответ 1

Синтаксис, который вы используете:

pip install "project[extra]"

В вашем случае вы installing пакет splinter, в который добавлена поддержка django. Квадратные скобки ([]) - это не конкретный синтаксис, а просто соглашение. На самом деле вы устанавливаете пакет с именем: "splinter[django]".

Объяснение от @chetner:

Команда pip install splinter django установит два пакета с именами splinter и django. splinter[django], с другой стороны, устанавливает вариант пакета splinter, который содержит поддержку django. Обратите внимание, что он не имеет ничего общего с самим пакетом django, а представляет собой просто строку, определенную пакетом splinter для определенного набора функций, который включается.

Ответ 2

Уверен, что это дополнительные функции setuptools:

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

Иногда проект имеет "рекомендуемые" зависимости, которые не требуются для всех видов использования проекта. Например, проект может предлагать дополнительный вывод PDF, если установлен ReportLab, и поддержку reStructuredText, если установлен документирование. Эти дополнительные функции называются "дополнениями"...

Ответ 3

Это именно список из setup.py файла для проекта в вопросе:

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