Vejo mais e mais comandos como este:
$ pip install "splinter[django]"
O que esses colchetes fazem?
Vejo mais e mais comandos como este:
$ pip install "splinter[django]"
O que esses colchetes fazem?
pip install "splinter[django]", para evitar qualquer expansão acidental da casca do padrão.
Respostas:
A sintaxe que você está usando é:
pip install "project[extra]"
No seu caso, você é installingo splinterpacote que tem suporte adicional para django. Os colchetes ( []) não são sintaxe específica, apenas convenção. Realmente, você está instalando o pacote chamado: "splinter[django]".
Uma explicação de @chetner:
O comando
pip install splinter djangoinstalaria dois pacotes chamadossplinteredjango.splinter[django], por outro lado, instala uma variante dosplinterpacote que contém suporte paradjango. Observe que não tem nada a ver com odjangopacote em si, mas é apenas uma string definida pelosplinterpacote para um determinado conjunto de recursos que é ativado.
extrasignifica?
splintere django. splinter[django], por outro lado, instala uma variante do splinterpacote que contém suporte para django. Observe que não tem nada a ver com o djangopacote em si, mas é apenas uma string definida pelo splinterpacote para um determinado conjunto de recursos que é ativado.
splinterainda é o nome do pacote; pipo próprio analisa splinter[django]e reconhece-o como um nome de pacote com um "argumento" extra para ajudá-lo a instalar os arquivos corretos. Como o argumento djangoé interpretado depende inteiramente do setup.pyarquivo (ou algum outro arquivo de configuração? Na verdade, não sei os detalhes) usado para definir o pacote splinter.
pip install splinterinstalará menos requisitos do que pip install splinter[django]. Os pacotes adicionais que são instalados podem de fato (e provavelmente fazem) permitir que recursos adicionais do splinter funcionem, mas isso não muda nada no próprio pacote do splinter. Apenas informa ao pip sobre dependências adicionais.
[optional]no PIP significam dependências opcionaisCaso apareça outro desenvolvedor procurando implementar esse padrão em sua própria implantação de pacote Python, aqui está uma explicação adicional do brackets []in pip.
Para instalar a airflowpartir do pip , usamos este comando:
pip install 'apache-airflow'
Você pode instalar componentes opcionais de fluxo de ar com:
pip install 'apache-airflow[aws]'
# [optional] -----------^
Quando procurar pypi de apache-airflownota que os pacotes opcionais não aparecem:
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.pyVocê pode ver como isso foi feito no setup.py script
À esquerda em setup.py- extras_requireestá definido.
À direita estão os comandos de instalação correlacionados para esses subpacotes opcionais.
Tenho certeza de que são ferramentas de configuração extras:
Às vezes, um projeto tem dependências “recomendadas”, que não são necessárias para todos os usos do projeto. Por exemplo, um projeto pode oferecer saída PDF opcional se ReportLab estiver instalado, e suporte a reStructuredText se docutils estiver instalado. Esses recursos opcionais são chamados de “extras” ...
Talvez valha a pena saber que esta sintaxe de pacote opcional admite vários extras (separados por vírgula entre colchetes) como em:
python -m pip install SomePackage[PDF,EPUB] # multiple extras
De acordo com o manual do pip