Como executar o pip no modo não interativo?

4

A maioria das ferramentas que estou usando tem algum modo (geralmente ON por padrão), onde eles me fazem perguntas zero durante a execução do comando. O apt-get é um exemplo próximo ao pip. Existe a opção -y, que não é interativa. Existe tal opção para pip? Se não houver tal opção, como envolvê-lo em algum script que irá conseguir o que eu quero. Por exemplo, eu gostaria de executar algo como:

pipyes install mypackage

Atualmente estou fazendo isso, mas gostaria de envolvê-lo no script:

yes | pip install mypackage

É a maneira "correta" de atingir o modo não interativo de pip.

    
por vladimir 24.09.2014 / 16:06

3 respostas

8

Existe uma opção --yes especificamente para a desinstalação comando. Chamando

pip uninstall --yes <some-package>

desinstala o pacote sem pedir confirmação.

Para a instalação, o piping no comando yes ainda parece ser o caminho a seguir .

Outra abordagem que pode ser excessiva, dependendo do seu caso de uso, é usar uma ferramenta dedicada. Este é definitivamente o caminho a percorrer, se alguém se esforça com a instalação e configuração automáticas em uma base regular. Por exemplo: sistema estadual do SaltStacks tem todas maneiras de automatizar a interação com o pip . Isso não é apenas para orquestrar farms de servidores, mas também pode ser usado localmente executando salt- ligue diretamente para . Veja a introdução sobre a execução de sal masterless .

    
por 17.05.2016 / 13:43
0

Estou longe de ser um especialista em python / pip, mas já o usei para vários propósitos por vários anos e ainda não encontrei um uso direto da instalação do pip que fosse interativo. Ele possui extensas opções para casos menos diretos (índices de pacotes alternativos, cache, modo de desenvolvimento, etc). Se você tem um caso de instalação específico que requer alguma interação, meu palpite é que você poderia automatizá-lo, fornecendo a combinação correta de opções especializadas, documentadas aqui .

Desinstalar é o caso de eu estar muito mais acostumado a exigir interação (inclui uma confirmação explícita para remover módulos), e de fato suporta o padrão --yes flag a que você se refere na pergunta.

    
por 16.03.2015 / 20:22
0

Mesmo que não esteja documentado, com versões recentes do setuptools, você pode fazer

pip install --noinput ...

… que irá travar em vez de ficar em um prompt.

    
por 16.12.2015 / 15:29