Я вижу все больше и больше таких команд:
$ pip install "splinter[django]"
Что делают эти квадратные скобки?
Я вижу все больше и больше таких команд:
$ pip install "splinter[django]"
Что делают эти квадратные скобки?
pip install "splinter[django]", чтобы избежать случайного расширения оболочки шаблона.
Ответы:
Синтаксис, который вы используете:
pip install "project[extra]"
В вашем случае, вы пакет , который имеет дополнительную поддержку . Квадратные скобки ( ) - это не конкретный синтаксис, а просто соглашение. На самом деле, вы устанавливаете пакет с именем: .installingsplinterdjango[]"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. Эти дополнительные функции называются «дополнительными функциями» ...