Я бачу все більше і більше таких команд:
$ 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визначено.
Праворуч розташовані відповідні команди встановлення для цих додаткових підпакетів.
Цілком впевнений, що це додаткові додатки до setuptools:
Іноді проект має "рекомендовані" залежності, які не потрібні для всіх видів використання проекту. Наприклад, проект може запропонувати необов’язковий вихід PDF, якщо встановлено ReportLab, та підтримку reStructuredText, якщо встановлені документи. Ці додаткові функції називаються "додатковими послугами" ...