Я вижу все больше и больше таких команд:
$ pip install "splinter[django]"
Что делают эти квадратные скобки?
Я вижу все больше и больше таких команд:
$ pip install "splinter[django]"
Что делают эти квадратные скобки?
pip install "splinter[django]"
, чтобы избежать случайного расширения оболочки шаблона.
Ответы:
Синтаксис, который вы используете:
pip install "project[extra]"
В вашем случае, вы пакет , который имеет дополнительную поддержку . Квадратные скобки ( ) - это не конкретный синтаксис, а просто соглашение. На самом деле, вы устанавливаете пакет с именем: .installing
splinter
django
[]
"splinter[django]"
Объяснение от @chetner
:
Команда
pip install splinter django
установит два пакета с именамиsplinter
иdjango
.splinter[django]
, С другой стороны, устанавливает вариантsplinter
пакета , который содержит поддержку дляdjango
. Обратите внимание, что он не имеет ничего общего сdjango
самим пакетом, а представляет собой просто строку, определеннуюsplinter
пакетом для определенного набора функций, который включается.
extra
значит?
splinter
и django
. splinter[django]
, с другой стороны, устанавливает вариант splinter
пакета, который содержит поддержку django
. Обратите внимание, что он не имеет ничего общего с django
самим пакетом, а представляет собой просто строку, определенную splinter
пакетом для определенного набора функций, который включается.
splinter
остается именем пакета; pip
сам анализирует splinter[django]
и распознает его как имя пакета с дополнительным «аргументом», чтобы помочь ему установить правильные файлы. Как django
интерпретируется аргумент , полностью зависит от setup.py
файла (или какого-либо другого файла конфигурации? На самом деле я не знаю подробностей), используемого для определения пакета splinter
.
pip install splinter
установит меньше требований, чем pip install splinter[django]
. Установленные дополнительные пакеты действительно могут (и, вероятно, позволяют) включить дополнительные функции splinter, но это ничего не меняет в самом пакете splinter. Он просто сообщает pip о дополнительных зависимостях.
[optional]
в PIP обозначают необязательные зависимостиНа всякий случай, если появится другой разработчик, который хочет реализовать этот шаблон в своем собственном развертывании пакета Python, вот дальнейшее объяснение brackets []
in pip.
Для установки airflow
из pip мы используем эту команду:
pip install 'apache-airflow'
Вы можете установить дополнительные компоненты воздушного потока с:
pip install 'apache-airflow[aws]'
# [optional] -----------^
Когда мы искать PyPi для apache-airflow
отмечают , что дополнительные пакеты не отображаются:
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
Вы можете увидеть, как это было сделано в setup.py
сценарии.
Слева в setup.py
- extras_require
определяется.
Справа показаны соответствующие команды установки для этих необязательных подпакетов.
Уверен, что это дополнительные средства настройки:
Иногда у проекта есть «рекомендуемые» зависимости, которые не требуются для всех видов использования проекта. Например, проект может предлагать дополнительный вывод PDF, если установлен ReportLab, и поддержку reStructuredText, если установлен Docutils. Эти дополнительные функции называются «дополнительными функциями» ...