Como instalar a versão mais recente do pip quando eu já instalei o fornecido pelo Ubuntu?

18

No Ubuntu 16.04, quando você faz:

pip install --upgrade pip

você obtém:

Collecting pip
  Using cached pip-8.1.2-py2.py3-none-any.whl
Installing collected packages: pip
Successfully installed pip-8.1.1
You are using pip version 8.1.1, however version 8.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

Justo. Agora tente

pip install --upgrade pip

e você obtém:

Collecting pip
  Using cached pip-8.1.2-py2.py3-none-any.whl
Installing collected packages: pip
Successfully installed pip-8.1.1
You are using pip version 8.1.1, however version 8.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

Então, como obter o pip 8.1.2?

user2413
fonte
Funciona sudo -H pip install --upgrade pip?
Edwinksl # 22/16
@edwinksl: fornece os mesmos resultados que os outros comandos.
User2413 22/05
Isso parece estranho, pois funcionou para mim. Provavelmente precisa registrar um relatório de erro.
Edwinksl 22/05
@edwinksl: obrigado. Vou esperar mais alguns dias e fazer isso> #
user2413
11
@edwinksl Acabou de abrir um problema , caso alguém queira acompanhá-lo.
sethmlarson

Respostas:

13

Não é uma boa idéia atualizar o python do sistema, a menos que você esteja realmente trabalhando no código do ubuntu e tenha um motivo específico para isso. Existem muitas dependências do sistema que você pode quebrar atualizando com o pip em vez de usar as bibliotecas python no repositório APT.

Se você estiver desenvolvendo aplicativos python e precisar alterar as versões das bibliotecas, use as opções --user para pip ou crie um virtualenv para armazenar as versões das bibliotecas para seus usuários.

Ambos os métodos voltarão a usar as bibliotecas do sistema se não tiverem suas próprias cópias; o virtualenv tem mais opções sobre como controlar esse feedback.

pip com --user

Isso é tão fácil quanto adicionar --user ao final de todos os seus comandos pip, isso colocará suas bibliotecas python em ~ / .local / lib / pythonX.X (onde XX é o número da sua versão python), elas serão visualizadas por aqui primeiro, tenha cuidado ao fazer isso para o root se você precisar rodar através do sudo, pois isso pode afetar o python do sistema.

virtualenv

Isso funciona da mesma maneira que o descrito acima, mas está menos vinculado a um usuário específico, portanto não possui a limitação do sudo, você também pode clonar um virtualenv e atualizá-lo para testar as alterações, permitindo a reversão, se for ruim. http://docs.python-guide.org/en/latest/dev/virtualenvs/

Amias
fonte
11
Você realmente deseja fazer uma instalação alternativa do python, se quiser o 2.7, para não interferir no python do SO. A partir daí, você precisa atualizar o pip na instalação alt antes do venv. Você também deseja --no-cache-dir para impedir que a versão em cache seja instalada.
Wyrmwood
A atualização do pip não afeta negativamente (de qualquer maneira) o python 2.7, que é enviado por padrão.
Aflito
10

Parece que isso pode ser um problema com a instalação do arquivo .whl para pip8.1.2. Uma pipsolução alternativa para instalar o 8.1.2 é baixar o código-fonte diretamente do PyPi e instalá-lo via setup.py.

O seguinte funcionou para mim:

wget https://pypi.python.org/packages/e7/a8/7556133689add8d1a54c0b14aeff0acb03c64707ce100ecd53934da1aa13/pip-8.1.2.tar.gz
tar -xzvf pip-8.1.2.tar.gz
cd pip-8.1.2
sudo python setup.py install

Obviamente, isso não é uma solução para instalar o pip 8.1.2 pip install --upgrade, mas deve reprimir o aviso até que esse problema seja resolvido .

sethmlarson
fonte
Há um comentário nesse tópico que sugere que isso está parcialmente relacionado ao ubuntu corrigindo sua versão empacotada do pip para impedir que ele atualize os pacotes instalados.
Amias
5

sudo -H python -m pip install --upgrade pipresolverá seu problema. Como alguém mencionado acima, embora o sistema específico exija python 2.7 para certas coisas ... Dito isto, você pode atualizar o pip sem impactar negativamente isso, mas também pode instalar o 3.5 ao lado, se quiser.

o -Hé um sinalizador sudoque solicita que a política de segurança defina a variável de ambiente HOME para o diretório inicial especificado pela entrada do banco de dados de senha do usuário de destino. Dependendo da política, esse pode ser o comportamento padrão.

Aflitos
fonte
Se alguém quiser rebater um post pensado como esse, você deve realmente dizer por que essa é uma forma ruim.
Javadba 27/06
Porque eles estão com raiva e precisam desabafar a raiva de alguém. Com raiva do que você pergunta, a vida em geral. estouro de pilha se transformou em nada além de um lugar para vir e ser assediado. #
277 Afflicted
2

Desinstale o pip usando o apt-get e instale-o usando o easy_install. Funcionou para mim.

sudo apt-get remove python-pip
sudo easy_install pip
toliveira
fonte
O easy_install falha. Eu entendo bash: /usr/bin/pip: No such file or directory. E também não posso purgar pip agora. Espero que isso não tenha quebrado completamente o pip na minha máquina.
Dean Schulze