¿Cómo instalo una versión diferente de Python usando apt-get?

125

¿Cómo puedo instalar una versión diferente de Python usando apt-get?

Obviamente, me doy cuenta de que puedo instalar usando la bola tar fuente, sin embargo, preferiría no instalar desde la fuente y en su lugar usar el administrador de paquetes, ya que para eso está. Seguramente en algún lugar de buena reputación se compilan archivos .deb para las últimas versiones de Python (por qué python.org no está más allá de mí) a los que puedo hacer referencia.

¿Qué debo hacer para hacer referencia a ellos y qué problemas podría crear al actualizar a la próxima versión?

Si no hay forma, excepto para construir desde la fuente, ¿hay un (pseudo) paquete que pueda instalar que proporcionará todas las dependencias necesarias sin tener que buscar e instalar cada una individualmente? Para que no entienda:

The necessary bits to build these optional modules were not found:
_bz2                  _curses               _curses_panel      
_dbm                  _gdbm                 _lzma              
_sqlite3              _ssl                  _tkinter           
readline              zlib  
acosar
fuente
¿alguna vez recibiste E: Couldn't find any package by regex 'python3.5'y por lo tanto no pudiste instalar a través de apt-get install python3.5?
Charlie Parker
pregunta similar: askubuntu.com/questions/310441/…
Charlie Parker
algunas buenas sugerencias aquí: quora.com/…
Charlie Parker
1
@CharlieParker ¿Intentaste instalar Anaconda ?
M. Becerra

Respuestas:

169

Felix Krull ejecuta un PPA que ofrece básicamente cualquier versión de Python (en serio, hay 2.3.7 build para vívido ...) para muchas versiones de Ubuntu en https://launchpad.net/~deadsnakes/+archive/ubuntu/ppa .

Haz lo usual:

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python3.5

No sobrescribirá su existente python3.4que todavía está vinculado como python3.

¡NO cambies el enlace simbólico! Aparentemente, hay muchas funciones del sistema que no funcionan correctamente con python3.5.

Intenté esto y luego no pude abrir un terminal, un actualizador de software, ...

cd /usr/bin
sudo rm python3

La actualización a Wily adaptará el metapaquete python3al que apunta python3.5. No espero ninguna rotura, pero en este punto ya no se necesita el repositorio externo. Para estar realmente seguro, puede purgar el PPA antes de realizar la actualización.

Nephente
fuente
55
para los novatos, ¡no hagas enlaces simbólicos! tampoco simblinking solo significa que necesita escribir python3.5 desde la línea de comando para ejecutar python 3.5
Chris Hawkes
44
¿Podría señalarme, cómo puedo usar el pip de 3.4 con este 3.5?
Groosha
2
@ kondra007 Seguí las instrucciones de pip.pypa.io/en/stable/installing ( lea la advertencia allí) y estos dos comandos wget https://bootstrap.pypa.io/get-pip.py; sudo python3.5 get-pip.pyme dieron un pip que funciona para python 3.5 pero pip3.4 ya no funciona. Si alguien sabe mejor por favor comente
ndemou
2
También para configurar python3.5 como predeterminado ~$ vim ~/.bashrcy agregar esto alias python=python3.5. entonces~$source ~/.bashrc
Krishnadas PC
1
Consejos: si add-apt-repository: command not found, ejecutar apt-get install software-properties-common python-software-propertiespara instalar
Mithril
35

Este enlace de Youtube me ayudó a instalarlo.

Los pasos son:

sudo apt-get install libssl-dev openssl
wget https://www.python.org/ftp/python/3.5.0/Python-3.5.0.tgz
tar xzvf Python-3.5.0.tgz
cd Python-3.5.0
./configure
make
sudo make install

Para verificar si Python está instalado, escriba python3.5otra cosa:

sudo ln -fs /opt/Python-3.5.0/Python /usr/bin/python3.5
joydeep bhattacharjee
fuente
3
OP dijo que no quería compilar desde la fuente
Michael Bates
3
Sí, tiene usted razón. También compilar desde la fuente podría introducir algunos problemas de dependencia más adelante. Pero así es como lo resolví. Si hay una mejor manera, definitivamente querría saberlo.
joydeep bhattacharjee
55
Considere ./configure --enable-optimizations stackoverflow.com/questions/41405728/…
warvariuc
1
@CharlieParker porque Python no está hecho para un sistema operativo específico. Está destinado a ejecutarse en cualquier plataforma. Para Linux, esto significa que cada versión tiene que ser compilada y distribuida para cada versión de cada distribución de Linux (de las cuales hay muchas), o distribuyen la fuente y dejan que el usuario la compile en el entorno en el que estará usado. Esto último es mucho más factible.
CJStuart
2
También necesita el compilador c / c ++ deapt-get install build-essential
bato3
13

Simplemente siga esos pasos (probados):

Paso 1 - Instale los paquetes requeridos

Use el siguiente comando para instalar los requisitos previos para Python antes de instalarlo.

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

Paso 2 - Descarga Python 3.5.2

Descargue Python usando el siguiente comando del sitio oficial de Python. También puede descargar la última versión en lugar de la especificada a continuación.

cd /usr/src
sudo wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz

Ahora extraiga el paquete descargado.

sudo tar xzf Python-3.5.2.tgz

Paso 3: compilar Python Source

Use el siguiente conjunto de comandos para compilar el código fuente de Python en su sistema usando altinstall.

cd Python-3.5.2
sudo ./configure
sudo make altinstall

make altinstallse usa para evitar reemplazar el archivo binario predeterminado de python /usr/bin/python.

Paso 4 - Verifique la versión de Python

Verifique la última versión instalada de python usando el siguiente comando.

$ python3.5 -V

Python 3.5.2

Fuente .

Bilal
fuente
2
+1 para usar altinstall por defecto. No hay muchos escenarios reales en los que puedas vivir solo con una versión. Incluso de los sistemas con Python3 como predeterminado, puede verse obligado a instalar Python como revertido -> Python2 en su lugar o agregar Python2.
erm3nda
1
Obtuve un error como se describe aquí: bugs.python.org/issue31652 tuvo que ejecutarse sudo apt-get install libffi-devpara resolverlo.
Nishan Chathuranga
También agregaría sudo apt-get install liblzma-devpara habilitar el soporte de lzma.
v.grabovets
6

Por lo que puedo decir, al menos en un contenedor acoplable, definitivamente se puede apt-getpython 3.

Primero me encontré con un contenedor ubuntu con contenedor:

docker run -it --rm ubuntu:latest bash

entonces, por alguna razón, necesitaba actualizar algunas cosas de ubuntu, así que lo hice (dentro del contenedor):

apt-get update && apt-get install -y build-essential git libjpeg-dev

y luego simplemente instalé python3 y parece que automáticamente obtuvo python 3.5:

apt-get install python3
apt-get install python3-pip

y para probar si pip funciona, descarguemos algo:

pip3 install tensorflow

Todo parece funcionar bien para mí.

Nota importante: parece que si ya tiene instalado Python 3.4, entonces apt-get install python3no funciona porque dice que ya lo tiene. Parece que ese fue uno de mis problemas porque estaba comenzando desde una imagen acoplable de Tensorflow (en particular gcr.io/tensorflow/tensorflow:latest-devel-py3) y algo en esa imagen (supongo que ya tienen Python 3.4 pero podría ser algo más) no me permitió actualizar mi python para obtener python 3.5.


Crédito: descubrí esto cuando pregunté lo siguiente: https://stackoverflow.com/questions/42122826/can-one-use-python-3-5-in-a-docker-container-based-out-of-the -tensorflow-docker


Nota: también se puede instalar Anaconda. Para un ejemplo de docker, uno puede hacer:

docker pull continuumio/anaconda3
docker run -i -t continuumio/anaconda3 /bin/bash

desde su sitio web oficial: https://hub.docker.com/r/continuumio/anaconda3/

Esta solución instala Python 3.6, pero estoy seguro de que si lo investigas allí, puedes obtener Python 3.5 si eso es lo que quieres.

Nota: probablemente debería usar un entorno virtual como virtual env o conda / anaconda de todos modos, a menos que esté usando docker de todos modos. Solo quería recordárselo a la gente.

Charlie Parker
fuente
1
"en un contenedor docker" es una declaración muy genérica: todo depende de la imagen en la que se base el contenedor, por ejemplo, en qué versión de Ubuntu. Además, puede haber versiones menores como 3.5 o 3.6 que no están disponibles en una versión de Ubuntu (14.04 por ejemplo)
giorgiosironi
2

Hay una serie de nuevas distribuciones de Python disponibles para instalar a través de apt-get que figuran en los paquetes de Ubuntu

Como ejemplo, las siguientes versiones están actualmente disponibles:

python2.7

python3.2

python3.4

python3.5

python3.6

La disponibilidad varía con el lanzamiento de Ubuntu hasta cierto punto. Por ejemplo, 3.5 está disponible para Xenial, Yakkety y Zesty y 3.6 está disponible para Yakkety y Zesty, pero debe habilitar el repositorio de Universe si no está habilitado para obtenerlos a través de apt-get. Para verificar la disponibilidad de su versión de Ubuntu, consulte los enlaces anteriores.

Un vistazo rápido indica que esta respuesta también es válida ya que el PPA tiene 3.6 incluso para Trusty.

Elder Geek
fuente
Las versiones de Python disponibles en Ubuntu Repo no son la versión más reciente de Python .
yaitloutou
@yaitloutou La pregunta dice "más nuevo", no "más nuevo". Por supuesto, siéntase libre de escribir una mejor respuesta.
Élder Geek
Estás en lo cierto, pero desde más reciente con respecto a lo que no se especifica he interpretado como más nuevo :)
yaitloutou
@yaitloutou ¡Siéntete libre y escribe una mejor respuesta! Estoy seguro de que sería apreciado.
Élder Geek
Acabo de comenzar a hacer actividad aquí, y todavía estoy aprendiendo. Lo siento si mi comentario sobre su respuesta es
molesto
0

Consideraría usar entornos virtuales en lugar de instalar versiones de Python a través de apt-get.

El uso de entornos virtuales, ver aquí, es una buena práctica para desarrollar con python. Le permiten aislar su entorno de Python de las versiones de Python instaladas en el sistema.

Además, no tiene que obtener acceso a sudo mientras instala ninguna biblioteca (a través de pip, etc.).

devrimbaris
fuente
11
Creo que necesita instalar la versión de Python que desea antes de poder usarla en un entorno virtual.
Nzbuu
1
Instala la versión deseada de python en el entorno virtual, luego cambia la ruta relacionada con python simplemente ejecutando el script "activar" en el entorno virtual.
devrimbaris
Esto es exactamente lo que quiero hacer: lo primero que intenté hacer después de seguir la respuesta de @ Nephente fue señalarlo usando virtualenv -p. Pero explotó con "ImportError: no se puede importar el nombre 'HTTPSHandler'".
Michael Scheper el
1
¿Por qué se rechazó esto? Las envolturas virtuales generalmente funcionan bien.
Charlie Parker
¿Cómo se instala un entorno virtual en Ubuntu (como en su sugerencia) pero con Python 3.5?
Charlie Parker el
0

Conda se actualiza activamente y le permite instalar múltiples versiones de Python en venvs administrados sin el tedio de configurarlo usted mismo. Los problemas de ruta de extensión binaria pueden haberse resuelto en muchas de las cadenas de dependencia / pip administradas por anaconda que usa.

RobotHumanos
fuente