¿Cómo instalo el último Python 2.7.X o 3.X en Ubuntu?

157

Quiero instalar el último tarball de Python en Ubuntu, descargado de enlace .

¿Es esta una forma correcta de instalar?

./configure
make
make install

Si no, ¿cómo hago eso?

    
pregunta Mohammads 05.02.2012 - 13:02

5 respuestas

183

Primero, instale algunas dependencias:

sudo apt-get install build-essential checkinstall
sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev

Luego, descargue usando el siguiente comando:

version=2.7.13
cd ~/Downloads/
wget https://www.python.org/ftp/python/$version/Python-$version.tgz

Extraiga y vaya al directorio:

tar -xvf Python-$version.tgz
cd Python-$version

Ahora, instálelo utilizando el comando que acaba de probar, utilizando checkinstall para facilitar la desinstalación si es necesario:

./configure
make
sudo checkinstall

Cambia version a la versión que necesites ( version=2.7.1 o version=3.6.0 , por ejemplo).

    
respondido por el Achu 05.02.2012 - 13:20
159

A menos que realmente tenga un ardiente deseo de compilarlo usted mismo, la forma preferida es utilizar el PPA de DeadSnakes para instalar versiones de Python que no están incluidas por defecto:

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python2.7

Otras versiones, como python2.4 o python3.6 , etc. también están disponibles.

    
respondido por el brousch 05.02.2012 - 15:40
24

Continuar documentando esto para los últimos lanzamientos de Ubuntu 1 : para el servidor Ubuntu 16.04.1, el Python predeterminado es la versión 3.5, y Python 2.7 no está instalado por defecto . En una instalación nueva (tenga en cuenta que ni siquiera hay un ejecutable python ):

$ 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, es probable que desee hacer un sudo apt-get update , sudo apt-get upgrade y sudo apt-get dist-upgrade (por favor, tenga en cuenta exactamente lo que estos comandos están haciendo, supongo que habrá una nueva instalación aquí. )

Instalar Python 2.7 es tan fácil como:

$ sudo apt-get install python2.7

La salida inicial de la instalación de Python 2.7 es la siguiente:

$ 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...

Después de instalar 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

Pero todavía hay un problema, ya que todavía no puede instalar módulos PyPI a través de pip ; por ejemplo, si quiere el portátil jupyter, o el último scipy o numpy (etc.), querrá instalar pip y luego pip install ésos, y aún recurriendo a apt-get para instalar cualquier dependencia system necesaria, como graphviz o las bibliotecas del sistema central.

$ 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

Entonces, para instalar pip, de nuevo, es tan fácil como 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

Necesitará tanto python-pip para Python 2.7 pip y el python3-pip para Python 3 pip . La instalación a través de apt-get seguramente instalará las dependencias requeridas; Por ejemplo, aquí está la salida para instalar 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...

Algo interesante sucede como resultado de esto: ahora tiene el "estándar" (y se recomienda PEP) python2 y python3 (que son solo enlaces simbólicos a python 2.7 y 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

También querrás sudo apt-get install python3-pip ; antes de instalar, tiene:

$ 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

Después de instalar 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...

Las versiones 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)

Y una última cosa antes de que pueda ir y comenzar a instalar todos sus módulos PyPI Python favoritos: probablemente tendrá que actualizar el pip en sí mismo (tanto pip2 como pip3, por separado; además, no importa si pip es invocado a través de los ejecutables python o los ejecutables pip , las actualizaciones reales se almacenan en /usr/lib ):

$ sudo -H python2 -m pip install --upgrade pip
...
$ sudo -H python3 -m pip install --upgrade pip
...

Ahora puede ejecutar el pip independiente o la versión incluida en python (a través de python -m pip {command} ).

[1] recapitulación histórica: anterior Ubuntu solo tenía Python 2.6, por lo tanto, todos los diversos métodos para instalar Python 2.7+. Más tarde, después de que Python 2.7 se agregó a los repositorios públicos, todavía teníamos el mismo desafío para instalar el último Python 2.7 con las últimas correcciones, que (con demasiada frecuencia) era necesario. La situación actual es mucho mejor / más simple: la versión actual de Python 2.7 & amp; 3.5 (básicamente las dos únicas versiones de la plataforma de Python que importan) que ahora están en los repos públicos son muy estables, por lo que ahora solo tenemos que preocuparnos de instalar los últimos módulos python , no los últimos < em> python . Así que ahora el "último problema de la versión" de Python se ha movido parcialmente fuera de los repositorios y amp; apt y en PyPI & amp; pip .)

    
respondido por el michael 29.09.2016 - 10:50
11

12.04

Si sigue la respuesta de Achu , entonces el término libread5-dev debe cambiarse a libreadline-gplv2-dev . Entonces, el comando completo sería:

sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
    
respondido por el ThatGuy 26.07.2012 - 16:37
2

También puede descargarlo e instalarlo a través de pyenv

#Install Pyenv
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
export PATH=~/.pyenv/bin:/usr/local/hadoop/bin/:$PATH
echo 'export PYENV_ROOT="~/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile

#Install Python
pyenv install 2.7.8
pyenv global 2.7.8

pyenv install 3.4.5
pyenv global 3.4.5
    
respondido por el Whispered 30.03.2017 - 09:38

Lea otras preguntas en las etiquetas