evitando que o pip remova pacotes do sistema durante a atualização

1

Eu tenho uma instalação de desktop Ubuntu bastante simples (13.04), que vem completa com vários utilitários Python em pacote Ubuntu - estes vivem em /usr/lib/python2.7 e são de propriedade de root. Eu chamo esses pacotes Python de "sistema".

Eu também faço muito trabalho científico com Python e, por isso, instalei ferramentas como numpy, matplotlib, etc. usando pip - elas vivem em /usr/local/lib/python2.7 e são de minha propriedade (eu chown ed /usr/local porque eu sou o único usuário nesta máquina). Eu chamo esses pacotes Python "locais". Eu coloquei o caminho local na frente do sistema em meu PYTHONPATH para que eu carregue os pacotes locais preferencialmente.

Agora, estou tentando atualizar um dos pacotes locais que instalei usando pip e pip está falhando porque deseja desinstalar um pacote de sistema dependente como parte do processo de atualização.

Eu tenho duas perguntas sobre isso, abordando o problema de cada lado:

Uma forma de corrigir esse problema é obter pip para atualizar meus pacotes locais e ignorar os pacotes instalados pelo sistema (se possível). Posso impedir que pip tente desinstalar um pacote do sistema durante uma atualização de pacote local, mas apenas para uma dependência?

Outra maneira seria ter pip instalar uma versão mais recente do pacote e, em seguida, usar essa versão para satisfazer as dependências nas ferramentas relacionadas apt . Existe uma maneira de dizer ao Ubuntu que um pacote pip -installed irá satisfazer uma dependência apt ?

(Eu estou familiarizado com o virtualenv, mas nesta máquina eu só uso esse ambiente, então eu realmente gostaria de evitar saber se estou trabalhando no virtualenv correto.)

    
por lmjohns3 16.08.2013 / 19:55

1 resposta

4

Se você não quiser que o pip instale ou desinstale qualquer dependência que você possa usar

pip install --no-deps package_name

Lembre-se de que você é o responsável por garantir que as diferentes dependências necessárias para o pacote que você instalou estão satisfeitas.

Para usá-lo ao atualizar um pacote, use:

pip install -U --no-deps package_name

Para um problema semelhante, cf. Arraste os pacotes Python instalados para a frente ao atualizar

    
por don.joey 16.08.2013 / 20:57