Continuando a documentar isso para as versões mais recentes do Ubuntu 1 : para o servidor Ubuntu 16.04.1, o Python padrão é a versão 3.5 e o Python 2.7 não é instalado por padrão. Em uma nova instalação (observe que não há nem um python
executável):
$ type python3 python2 python
python3 is /usr/bin/python3
-bash: type: python2: not found
-bash: type: python: not found
$ python3 --version
Python 3.5.2
$ python --version
The program 'python' can be found in the following packages:
* python-minimal
* python3
Try: sudo apt install <selected package>
Nota: antes de continuar, você provavelmente desejará fazer uma rápida sudo apt-get update
, sudo apt-get upgrade
e sudo apt-get dist-upgrade
(observe exatamente o que esses comandos estão realmente fazendo; estou assumindo uma nova instalação aqui).
A instalação do python 2.7 é tão fácil quanto:
$ sudo apt-get install python2.7
A saída inicial da instalação do python 2.7 é a seguinte:
$ sudo apt-get install python2.7
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
libpython2.7-minimal libpython2.7-stdlib python2.7-minimal
Suggested packages:
python2.7-doc binutils binfmt-support
The following NEW packages will be installed:
libpython2.7-minimal libpython2.7-stdlib python2.7 python2.7-minimal
0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
Need to get 3,735 kB of archives.
After this operation, 15.8 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
...etc, etc...
Depois de instalar o python 2.7,
$ type python3 python2.7 python3.5 python2 python
python3 is /usr/bin/python3
python2.7 is /usr/bin/python2.7
python3.5 is /usr/bin/python3.5
bash: type: python2: not found
bash: type: python: not found
Mas ainda há um problema, já que você ainda não pode instalar os módulos PyPI via pip
- por exemplo, se você deseja um notebook jupyter ou o mais recente scipy ou numpy (etc), você deseja instalar pip
e depois os pip install
mesmos e ainda voltar para apt-get
instalar todas as dependências do sistema necessárias , como graphviz ou bibliotecas do sistema principal.
$ type pip3 pip2 pip
bash: type: pip3: not found
bash: type: pip2: not found
bash: type: pip: not found
$ python3 -m pip --version
/usr/bin/python3: No module named pip
Então, para instalar o pip, novamente, é tão fácil quanto sudo apt-get install python-pip
:
$ sudo apt-cache search -n pip | egrep '^python[0-9]*-pip'
python-pip - alternative Python package installer
python-pip-whl - alternative Python package installer
python3-pip - alternative Python package installer - Python 3 version of the package
Você precisará python-pip
do Python 2.7 pip
e python3-pip
do Python 3 pip
. A instalação via apt-get
é certa para instalar as dependências necessárias; por exemplo, aqui está a saída para instalar o pip2:
$ sudo apt-get install python-pip
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
binutils build-essential dpkg-dev fakeroot g++ g++-5 gcc gcc-5 libalgorithm-diff-perl
libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan2 libatomic1 libc-dev-bin libc6-dev
libcc1-0 libcilkrts5 libdpkg-perl libexpat1-dev libfakeroot libfile-fcntllock-perl libgcc-5-dev
libgomp1 libitm1 liblsan0 libmpx0 libpython-all-dev libpython-dev libpython-stdlib libpython2.7
libpython2.7-dev libquadmath0 libstdc++-5-dev libtsan0 libubsan0 linux-libc-dev make
manpages-dev python python-all python-all-dev python-dev python-minimal python-pip-whl
python-pkg-resources python-setuptools python-wheel python2.7-dev
Suggested packages:
binutils-doc debian-keyring g++-multilib g++-5-multilib gcc-5-doc libstdc++6-5-dbg gcc-multilib
autoconf automake libtool flex bison gdb gcc-doc gcc-5-multilib gcc-5-locales libgcc1-dbg
libgomp1-dbg libitm1-dbg libatomic1-dbg libasan2-dbg liblsan0-dbg libtsan0-dbg libubsan0-dbg
libcilkrts5-dbg libmpx0-dbg libquadmath0-dbg glibc-doc libstdc++-5-doc make-doc python-doc
python-tk python-setuptools-doc
The following NEW packages will be installed:
binutils build-essential dpkg-dev fakeroot g++ g++-5 gcc gcc-5 libalgorithm-diff-perl
libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan2 libatomic1 libc-dev-bin libc6-dev
libcc1-0 libcilkrts5 libdpkg-perl libexpat1-dev libfakeroot libfile-fcntllock-perl libgcc-5-dev
libgomp1 libitm1 liblsan0 libmpx0 libpython-all-dev libpython-dev libpython-stdlib libpython2.7
libpython2.7-dev libquadmath0 libstdc++-5-dev libtsan0 libubsan0 linux-libc-dev make
manpages-dev python python-all python-all-dev python-dev python-minimal python-pip
python-pip-whl python-pkg-resources python-setuptools python-wheel python2.7-dev
0 upgraded, 49 newly installed, 0 to remove and 0 not upgraded.
Need to get 61.1 MB of archives.
After this operation, 169 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
...etc...
Uma coisa interessante acontece como resultado disso: agora você tem o "padrão" (e o PEP recomendado) python2
e python3
(que são apenas links simbólicos para python 2.7 e python 3.5):
$ type python3 python2 python python2.7 python3.5
python3 is /usr/bin/python3
python2 is /usr/bin/python2
python is /usr/bin/python
python2.7 is /usr/bin/python2.7
python3.5 is /usr/bin/python3.5
Você também vai querer sudo apt-get install python3-pip
; Antes de instalar, você tem:
$ type pip pip2 pip3
pip is /usr/bin/pip
pip2 is /usr/bin/pip2
-bash: type: pip3: not found
$ python2 -m pip --version
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)
$ python3 -m pip --version
/usr/bin/python3: No module named pip
Após a instalação pip3
,
$ sudo apt-get install python3-pip
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
libpython3-dev libpython3.5-dev python3-dev python3-setuptools python3-wheel python3.5-dev
Suggested packages:
python-setuptools-doc
The following NEW packages will be installed:
libpython3-dev libpython3.5-dev python3-dev python3-pip python3-setuptools python3-wheel python3.5-dev
0 upgraded, 7 newly installed, 0 to remove and 0 not upgraded.
Need to get 38.0 MB of archives.
After this operation, 55.2 MB of additional disk space will be used.
Do you want to continue? [Y/n]
...etc...
As versões resultantes:
$ type python python2 python3 pip pip2 pip3
python is /usr/bin/python
python2 is hashed (/usr/bin/python2)
python3 is hashed (/usr/bin/python3)
pip is /usr/bin/pip
pip2 is /usr/bin/pip2
pip3 is /usr/bin/pip3
$ pip --version
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)
$ pip3 --version
pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)
$ python2 -m pip --version
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)
$ python3 -m pip --version
pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)
E uma última coisa antes de poder começar a instalar todos os seus módulos PyPI python favoritos: você provavelmente precisará atualizar o próprio pip (tanto o pip2 quanto o pip3, separadamente; além disso, não importa se pip
é invocado pelos python
executáveis ou pelo pip
executáveis, as atualizações reais são armazenadas em /usr/lib
):
$ sudo -H python2 -m pip install --upgrade pip
...
$ sudo -H python3 -m pip install --upgrade pip
...
Agora você pode executar pip
a versão autônoma ou agrupada em python
(via python -m pip {command}
).
[1] Recapitulação histórica: o Ubuntu mais antigo tinha apenas o Python 2.6, portanto, todos os vários métodos para instalar o Python 2.7+. Mais tarde, depois que o Python 2.7 foi adicionado aos repositórios públicos, ainda tínhamos o mesmo desafio de instalar o Python 2.7 mais recente com as correções mais recentes, o que era (também) frequentemente necessário. Hoje, a situação é muito melhor / mais simples: os atuais Python 2.7 e 3.5 (basicamente as duas únicas versões da plataforma Python com as quais as pessoas se preocupam) que estão agora nos repositórios públicos são muito estáveis, então agora só precisamos nos preocupar em instalar as versões mais recentes. módulos python , não o python mais recente . Então agora o "problema da versão mais recente" do Python saiu parcialmente dos repositórios de SO apt
e para o PyPI & pip
.)
sudo apt-get install python-2.7 python-pip