Actualización a Python 3.2

22

Quiero usar nuevas functools que proporcionen lrucache, actualmente estoy usando python 2.6, que no admite esto,

¿Cuál es la mejor forma en que puedo actualizar a Python 3.2? ¿O hay alguna otra manera en que pueda usar los itertools + functools de la versión 3.2 en la distribución de python 2.6

Gracias

aprendiz
fuente
¿Quizás esta receta es útil?
JanC

Respuestas:

24

Dado que muchos programas y bibliotecas dependen de Python 2.6 (o python 2.7 en 11.04), y dado que python 2.xy 3.x son incompatibles, no puede actualizar, solo puede instalar python3 junto con python 2.6:

Python 3.1

  • Afortunadamente, la versión estable de Python 3 (3.1.2 en el momento de escribir esto) se proporciona en los repositorios. Simplemente instale el paquete python3-all  .

    Su intérprete será en /usr/bin/python3lugar de /usr/bin/python.

    Ahora también puede escribir python3su terminal cuando desee iniciar Py3 en lugar de Py2.


Python 3.2

  • Puede descargar cualquier versión de las fuentes de python desde python.org y ejecutar

    ./configure
    make
    sudo make altinstall

    Para poder compilar la fuente de Python, necesitará algunos paquetes:

    sudo apt-get install build-essential libncursesw5-dev libreadline5-dev libssl-dev libgdbm-dev libc6-dev libsqlite3-dev tk-dev libbz2-dev

    La opción altinstall instalará la otra versión de python junto con las existentes:

    Tiene sentido, en lugar de descargar las fuentes, consultar la última versión de desarrollo del repositorio de desarrollo de Python de vez en cuando:

    svn checkout http://svn.python.org/projects/python/branches/py3k

    Esto le dará la última versión de desarrollo, inestable. entonces puede cd py3k/y hacer el procedimiento de compilación anterior.

    Para esto, svn  necesita ser instalado, por supuesto.

Stefano Palazzo
fuente
1
Esta respuesta es genial, voté positivamente, pero me gustaría tener más profundidad. Puedo invocar el nuevo Python como 'python3.2', lo cual está bien, pero ¿puedo configurar las cosas para que mis programas personales usen esta versión por defecto (por ejemplo, obtener python3.2 como el primer 'python' en la RUTA) mientras el sistema se mantiene seguro usando python2.6? Pregunto no porque no me gusta escribir 'python3.2', sino porque algunos
Jonathan Hartley
1
@Tartley Tu comentario se cortó allí, ¿por qué quieres hacerlo?
Stefano Palazzo
1
(Uy, gracias.) ... pero porque algunas herramientas tienen, por ejemplo, scripts de bash, que invocan sus componentes de Python usando 'python xxx.py', y solo se ejecutan en Python 3.2. Por lo tanto, quiero crear un entorno (de hecho, quiero que sea mi entorno predeterminado personal) en el que Python 3.2 (y todos sus scripts, herramientas, etc.) es el primero en la ruta, dejando el sistema Python 2.6 para que el sistema uso (de hecho, de preferencia, me gustaría quitar esto de mi camino personal solo para asegurarme de que no haya confusión sobre qué Python estoy ejecutando)
Jonathan Hartley