¿Instalar versiones nuevas y antiguas de python en debian?

12

¿Cómo puedo instalar versiones adicionales de python en Debian (jessie)? En Ubuntu puedo usar el PPA "deadsnakes" que me dará cualquier versión de Python que quiera, con el nombre de la versión en el comando (por ejemplo, python33para Python 3.3). Esto me permite instalarlos todos juntos. Puedo usar virtualenvs para instalar paquetes específicos de python para versiones específicas sin interferir con los paquetes del sistema. Mantengo algunas bibliotecas de Python, y necesitan trabajar en muchas versiones de Python. Si tengo instalado el binario de python, tox se encargará de usar virtualenvs para cada versión de python.

Entonces, ¿cuál es el equivalente de Debian del PPA de serpientes de Ubuntu?

ACTUALIZACIÓN Quiero instalar python: 2.6, 2.7, 3.3, 3.4 y 3.5.

Rory
fuente
¿Puedes especificar qué versiones de Python quieres instalar? Creo que Jessie tiene algunas versiones diferentes disponibles.
Faheem Mitha
En mi opinión, probablemente sea mejor que solo instales varias versiones de Python desde la fuente.
Celada

Respuestas:

9

Usando el PPA

Puede usar el PPA en Debian. Elija una versión de Ubuntu que sea un poco anterior a su versión de Debian, y debería tener todas las bibliotecas necesarias. Para wheezy, el PPA onírico parece estar bien (pero carece de versiones más recientes de Python). Para Jessie, el PPA de confianza debería funcionar.

Para agregar un PPA en Debian, cree un archivo que /etc/apt/sources.list.d/deadsnakes.listcontenga

deb http://ppa.launchpad.net/fkrull/deadsnakes/ubuntu trusty main 
deb-src http://ppa.launchpad.net/fkrull/deadsnakes/ubuntu trusty main 

Descargue la clave de firma PPA con

gpg --keyserver keyserver.ubuntu.com --recv-keys DB82666C

luego agregue la clave a la base de datos de claves APT con

gpg --export DB82666C | sudo apt-key add -

Finalmente ejecute apt-get updatee instale los paquetes deseados.

Si no puede hacer que el PPA funcione por alguna razón (tal vez no pueda encontrar una versión que funcione con las bibliotecas que tiene), puede descargar la fuente y volver a compilarlas para su distribución.

Usando un sistema chroot

Lo que suelo hacer para probar la compatibilidad con otras versiones es ejecutar distribuciones más antiguas o más nuevas en un sistema chrooteado . Por ejemplo, puede instalar varias versiones de Ubuntu con las versiones de Python que le interesan, o puede instalar trusty en un chroot e instalar el PPA allí. Para obtener más información, consulte mi guía schroot .

Gilles 'SO- deja de ser malvado'
fuente
1
Debe evitar el uso de PPA de Ubuntu en Debian, ya que podría causar problemas u otros conflictos. (También es posible usar pyenventornos virtualen para múltiples versiones de Python)
Thomas Ward,
Puedo confirmar que instalé con éxito Python 2.6, 2.7, 3.1, 3.2, 3.3, 3.5 y 3.6 en las pruebas actuales de Debian con este enfoque. La única advertencia que encontré fue que necesitaba desenterrar una versión antigua de la libssl1.0.0cual encontré aquí: packages.debian.org/jessie/libssl1.0.0 . También utilicé las versiones xenial (16.04) de paquetes (lts actuales), aunque creo que la confianza todavía funciona.
Att Righ
1

Yo diría que no hay un equivalente de Debian para el PPA de serpientes de Ubuntu

Bajo Debian, no se recomienda el uso de paquetes o repositorios de Ubuntu. Como esta publicación aparece en los motores de búsqueda, propongo aquí una respuesta que es menos peligrosa para un sistema Debian.

Es posible instalar Python manualmente. Como ejemplo, puede usar las siguientes instrucciones para instalar la versión 3.5.2

Prerrequisitos

Instalar dependencias:

sudo apt-get update && sudo apt-get install libssl-dev openssl

Construyendo Python

Puedes construir Python en una carpeta específica usando el --prefixparámetro del configurecomando:

wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz
tar zxf Python-3.5.2.tgz
cd Python-3.5.2/
./configure --prefix=/usr/local
make
sudo make install

En lugar de /usr/local, uno puede usar otro directorio base. Como ejemplo:

sudo mkdir /opt/python-3.5.2
./configure --prefix=/opt/python-3.5.2

Seleccionar la versión de Python

El uso de la variable de entorno PATH puede ayudar a elegir la versión de Python correcta para usar. Pero también se pueden usar enlaces simbólicos:

sudo ln -s /opt/python-3.5.2/bin/python3.5 /usr/local/bin/python3
sudo ln -s /opt/python-3.5.2/bin/pip3.5 /usr/local/bin/pip3

Usar la -fopción le permitirá reemplazar enlaces simbólicos existentes

lauhub
fuente