Como atualizar o pip para o mais recente?

51

Eu instalei pip usando get-pip.pydepois que pip freezelança abaixo do erro

Exception:
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 122, in main
    status = self.run(options, args)
  File "/usr/lib/python2.7/dist-packages/pip/commands/freeze.py", line 74, in run
    req = pip.FrozenRequirement.from_dist(dist, dependency_links, find_tags=find_tags)
  File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 299, in from_dist
    assert len(specs) == 1 and specs[0][0] == '=='
AssertionError

Storing debug log for failure in /home/simon/.pip/pip.log

Então eu verifiquei 1.7 é o mais recente. Se eu segui as etapas abaixo e não está atualizando ... Ajude-me aqui ...

simon@simon-OptiPlex-780:~/Nightybuild$ pip --version
pip 1.5.6 from /usr/lib/python2.7/dist-packages (python 2.7)
simon@simon-OptiPlex-780:~/Nightybuild$ pip --version
pip 1.5.6 from /usr/lib/python2.7/dist-packages (python 2.7)
simon@simon-OptiPlex-780:~/Nightybuild$ pip install -U pip
Downloading/unpacking pip
  Downloading pip-7.1.2-py2.py3-none-any.whl (1.1MB): 1.1MB downloaded
Installing collected packages: pip
Successfully installed pip
Cleaning up...
simon@simon-OptiPlex-780:~/Nightybuild$ pip --version
pip 1.5.6 from /usr/lib/python2.7/dist-packages (python 2.7)
Raja Simon
fonte
11
sudo -H PIP3 instalar pip --upgrade
moldovean

Respostas:

54

Normalmente, apenas executo os seguintes comandos para atualizar pip2(= pippor padrão) e pip3:

sudo -H pip3 install --upgrade pip
sudo -H pip2 install --upgrade pip

Você deve certificar-se de atualizar a versão (para Python 2 ou 3), a qual deseja reagir no comando pipsem número, por último.

Observe também que isso mantém as versões antigas empacotadas instaladas por meio de apt-getqualquer outro gerenciador de pacotes, mas adiciona novas versões que não têm nada a ver com os pacotes do sistema. Os pippacotes instalados serão preferidos, mas você também não deve remover apt-getos pacotes pipinstalados , porque o gerenciador de pacotes não pode saber que qualquer versão está instalada de outra forma.

Byte Commander
fonte
3
Por que é importante voltar para casa sudo -H?
Léo Léopold Hertz #
11
@ Masi Porque pipquer gravar seus arquivos baixados em algum lugar para armazená- los em cache. Ele foi implementado para colocá-los em uma subpasta do diretório inicial do usuário atual. Se você o estiver executando sem -Hqueixas, ele detecta que o diretório inicial atualmente definido (usuário normal) não corresponde ao usuário em que é executado (root). Se ele escrevesse seus arquivos no diretório inicial, eles seriam de propriedade do root e não mais acessíveis a você como usuário normal. Portanto, ele não armazena em cache os arquivos neste caso. Não é terrível omitir o -Hque o pipdetecta e avisa.
Byte Commander
11
Por que os dois comandos apenas substituem o pipcomando? Quando eu atualizo, pip2ele não atualiza o pip2comando, apenas pip.
Yep_It's_Me
@ Yep_It's_Me, isso ocorre porque pipé relativo à versão do python que você está chamando. e é por isso que seus comandos são pip2& pip3respectivamente chamam a versão apropriada do python para atualizar o pip. Isso faz sentido?
JayRizzo 20/01
27

Eu acho que o

pip install --upgrade pip

O comando não funciona mais corretamente. O comando correto deve ser:

  • para Python 3:

    python3 -m pip install --upgrade pip
  • para Python 2:

    python2 -m pip install --upgrade pip
Foad
fonte
Gg @ david-foerster
JayRizzo 20/01
No Linux, basta usar pip install -U pip(consulte Atualizando o pip )
Eido95
11
Eu tive problemas ao atualizar o pip a partir da raiz (em uma imagem do Docker) e isso funcionou como um encanto.
Cristian Ramon-Cortes
Funcionou como um encanto no Linux mint
HelloWorld
5

Acesse este site https://pypi.python.org/pypi/pip

copiar (ou) baixar o link de origem (termina em .tar.gz)

para 9.0.1, o link é https://pypi.python.org/pypi?:action=show_md5&digest=35f01da33009719497f01a4ba69d63c9

Procedimento de instalação

wget //link goes here
tar -xzvf pip-9.0.1.tar.gz
cd pip-9.0.1
sudo python3 setup.py install

a versão deve ser alterada para a versão mais recente e o link pode ser atualizado com o link da versão mais recente

isso deve funcionar

an0nym0use
fonte
essa é a única coisa que funcionou para mim, já que todo o resto precisa de uma conexão com o servidor a partir do shell, que novamente falha com o mesmo erro.
Alok Rajasukumaran
1

pip install -U pip

O mais curto que eu conheço.

prosti
fonte
1

Eu acho que vale a pena mencionar que o que estou explicando abaixo é se você espera que o pip aponte para Python 2 e o pip3 aponte para Python 3. O motivo pelo qual mencionei isso é porque, quando você atualiza o pip3, ele também assume o comando pip como bem. Essa é uma convenção um tanto estranha, porque, por padrão, o python aponta para 2.xe python3 aponta para 3.x. Dito isto ...

Se você deseja que as versões mais recentes do python 2.x pip e python 3.x pip3 coexistam na mesma máquina (usando o pip para 2.xe pip3 para 3.x), faça o seguinte:

sudo apt-get install python-pip python3-pip --yes
sudo python3 -m pip install pip --upgrade --force
sudo python -m pip install pip --upgrade --force # this line associates pip with Python 2

As outras respostas fornecidas por outras pessoas não mencionam que, após executar o sudo pip3 install pip --upgrade, você terminará com o comando pip instalando pacotes nos diretórios python 3.x em vez dos diretórios python 2.x.

Parte de mim pensa que devemos deixar o pip após a atualização do pip3 (mesmo se pip -> pip3), mas há um perigo de que as pessoas já tenham uma expectativa de que o pip funcione como python - ambos apontando para o python 2.x. Em outras palavras, as pessoas provavelmente são treinadas para usar pip / python para python 2.x, assim como são treinadas para usar pip3 / python3 para python 3.x.

Mike
fonte
-1

Eu enfrento o mesmo erro e o resolvi com os seguintes comandos.

sudo su root
apt-get purge -y python-pip
wget https://bootstrap.pypa.io/get-pip.py
python ./get-pip.py
apt-get install python-pip

ImportError: nenhum módulo chamado packaging.version

Bhavesh Odedra
fonte
apt-get purge -y python-piptrabalhou para mim
Akira Yamamoto