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?


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/


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 .


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.


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

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.