Ubuntu 16: instalação do pip instala o python 3 em vez de 2

3

Eu fiz o upgrade para o Ubuntu 16.04. Eu sei que ele veio apenas com o python 3 instalado, mas de alguma forma o python 2 entrou lá (eu acho que como uma dependência). Tudo bem porque eu adicionaria mesmo assim. Ambas as versões do python estão presentes como pode ser visto com:

$ python --version
Python 2.7.11+
$ python3 --version
Python 3.5.1+

Meu problema é que pip e pip3 são ambos padrão para python3 (e também não há pip2). Por exemplo:

$ sudo -H pip install numpy
Requirement already satisfied (use --upgrade to upgrade): numpy in /usr/local/lib/python3.5/dist-packages
$ sudo -H pip3 install numpy
Requirement already satisfied (use --upgrade to upgrade): numpy in /usr/local/lib/python3.5/dist-packages

Por que vale a pena eles estão se referindo a diferentes tipos de forragem:

$ which pip
/usr/local/bin/pip
$ which pip3
/usr/local/bin/pip3

Como faço para instalar o pip no python2 e instalar o pip3 no python3, como no Ubuntu 14.04?

    
por Karsus 01.06.2016 / 20:15

3 respostas

0

Encontrei uma maneira que funciona e espero não ter quebrado nada no processo. No começo eu tentei editar a primeira linha em / usr / local / bin / pip para alterá-lo do python 3 para o compilador python 2, mas recebi um erro dizendo que não havia nenhum módulo chamado pip!?

Então eu pensei que talvez eu precise instalá-lo para o python 2. Então eu fui e salvei o get script -pip.py eles ofereceram. Há um aviso de que ele pode quebrar coisas para o sistema operacional, mas como o xenial usa apenas o python3, decidi arriscar. E funcionou:

$ sudo -H pip install numpy
Requirement already satisfied (use --upgrade to upgrade): numpy in /usr/local/lib/python2.7/dist-packages
$ sudo -H pip3 install numpy
Requirement already satisfied (use --upgrade to upgrade): numpy in /usr/local/lib/python3.5/dist-packages

Ainda há o problema potencial que as coisas estão em / usr / local que muru mencionou, mas eu não sei muito sobre isso e se as coisas continuarem funcionando eu não vou reclamar. As únicas maneiras que eu adicionei pacotes são apt-get e alguns arquivos .deb em raras exceções (como chrome iirc).

    
por Karsus 01.06.2016 / 20:46
7

depois de instalar os dois

sudo apt-get install python-pip
sudo apt-get install python3-pip

no Ubuntu 16.04 eu posso simplesmente usar

pip2 install module
pip3 install module

para instalar o módulo desejado para Python2 ou Python3, respectivamente.

Espero que isso seja útil e funcione para você também!

    
por David 02.02.2017 / 14:21
0

Enfrente o mesmo problema resolvido ao desvincular pip do python3, reinstalando-o da seguinte forma:

sudo python -m pip install -U --force-reinstall pip
    
por Dwijay Bane 26.02.2018 / 15:51