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.)