python ubuntu python-2.7

Python 2.7 en Ubuntu



python-2.7 (7)

Bueno, si lo único que necesitas es argparse (¡viste eso en uno de tus comentarios!), Simplemente podrías:

pip install argparse

Esta no es exactamente una respuesta a la pregunta exacta :-), pero de hecho si solo le faltan algunas características, muchas características 2.7 realmente provienen de proyectos independientes y / o se pueden encontrar algunos paquetes de compatibilidad, por ejemplo:

La lista de 2.7 novedades es ciertamente más larga, pero la mayoría de las otras características nuevas probablemente no sean una gran falla, ya cambio no te metas con múltiples instalaciones de Python en tu caja. De lo contrario, vaya con pythonbrew :-)

Soy nuevo en Python y estoy trabajando en una máquina Linux (Ubuntu 10.10). Está ejecutando Python 2.6, pero me gustaría ejecutar 2.7 ya que tiene características que quiero usar. Me han instado a no instalar 2.7 y configurar eso como mi pitón predeterminado.

Mi pregunta es, ¿cómo puedo instalar 2.7 y ejecutarlo lado a lado con 2.6?


Hace poco copié Python 2.7 a Debian squeeze. Como Ubuntu 10.10 es más nuevo que Debian squeeze, si puedes hacerlo en squeeze, puedes hacerlo en Ubuntu. No tengo acceso a un sistema Ubuntu 10.10. Si configuro uno, lo probaré y actualizaré esta respuesta. Entonces, aquí hay un breve esbozo de lo que hice en Debian.

Primero, un comentario general y obvio, pero algo que se pasa por alto fácilmente. Uno no debe tomar las dependencias de construcción listadas de un paquete Debian demasiado en serio. Pueden ser mucho más específicos de lo necesario. Por ejemplo, el software como Python, que está diseñado para ser portátil y ejecutarse en una amplia gama de sistemas, es poco probable que se construya dependiendo de versiones muy específicas del software. Las dependencias de tiempo de ejecución se pueden ajustar también, pero esto debe hacerse con más precaución. Sin embargo, las dependencias de tiempo de ejecución en su mayoría se generan dinámicamente en función del software que ya está en este sistema, por lo que generalmente no es un gran problema.

apt-cache policy python2.7 python2.7: Installed: 2.7.2-8 Candidate: 2.7.2-8 Version table: 2.7.2-12 0 50 http://debian.csail.mit.edu/debian/ unstable/main i386 Packages 2.7.2-8 0 50 http://debian.csail.mit.edu/debian/ testing/main i386 Packages *** 2.7.2-8 0 100 /var/lib/dpkg/status

Seleccionando la versión de prueba obtenemos

apt-get source python2.7=2.7.2-8

En cuanto a debian/control , vemos las siguientes líneas de dependencia de compilación.

Build-Depende: debhelper (> = 5), quilt, autoconf, libreadline-dev, libtinfo-dev, libncursesw5-dev (> = 5.3), tk8.5-dev, zlib1g-dev, blt-dev (> = 2.4z ), libssl-dev, libexpat1-dev, sharutils, libbz2-dev, libbluetooth-dev [linux-any], locales [! armel! avr32! hppa! ia64! mipsel], libsqlite3-dev, libffi-dev (> = 3.0 .5), mime-support, libgpm2 [linux-any], netbase, lsb-release, bzip2, libdb4.8-dev, gdb, python, help2man Build-Depends-Indep: python-sphinx Build-Conflicts: tcl8.3 -dev, tk8.3-dev, tcl8.4-dev, tk8.4-dev, python2.7-xml, python-xml, autoconf2.13, libncurses5-dev

La mayoría de esto se satisface fácilmente con squeeze. Con la útil utilidad apt-show-versions obtenemos en mi máquina

apt-show-versions debhelper quilt autoconf libreadline-dev libtinfo-dev libncursesw5-dev tk8.5-dev zlib1g-dev blt-dev / libssl-dev libexpat1-dev sharutils libbz2-dev libbluetooth-dev locales libsqlite3-dev / libffi-dev mime-support libgpm2 netbase lsb-release bzip2 libdb4.8-dev gdb python help2man python-sphinx autoconf/squeeze uptodate 2.67-2 blt-dev/squeeze uptodate 2.4z-4.2 bzip2/squeeze uptodate 1.0.5-6 debhelper/squeeze-backports uptodate 8.9.13~bpo60+1 gdb/squeeze uptodate 7.0.1-2+b1 help2man/squeeze uptodate 1.38.2 libbluetooth-dev/squeeze uptodate 4.66-3 libbz2-dev/squeeze uptodate 1.0.5-6 libdb4.8-dev/squeeze uptodate 4.8.30-2 libexpat1-dev/squeeze uptodate 2.0.1-7 libffi-dev/squeeze uptodate 3.0.9-3 libgpm2/squeeze uptodate 1.20.4-3.3 libncursesw5-dev/squeeze uptodate 5.7+20100313-5 libreadline-dev/squeeze uptodate 6.1-3 libsqlite3-dev/squeeze uptodate 3.7.3-1 libssl-dev/squeeze uptodate 0.9.8o-4squeeze5 libtinfo-dev not installed locales/squeeze uptodate 2.11.2-10 lsb-release/squeeze uptodate 3.2-23.2squeeze1 mime-support/squeeze uptodate 3.48-1 netbase/squeeze uptodate 4.45 python/squeeze uptodate 2.6.6-3+squeeze6 python-sphinx/squeeze-backports uptodate 1.0.8+dfsg-2~bpo60+1 quilt/squeeze uptodate 0.48-7 sharutils/squeeze uptodate 1:4.9-1 tk8.5-dev/squeeze uptodate 8.5.8-1 zlib1g-dev/squeeze uptodate 1:1.2.3.4.dfsg-3

Vemos que todo excepto libtinfo-dev está disponible en squeeze. Tengo las versiones de squeeze backport de debhelper y python-sphinx , pero ambas están también disponibles para Debian squeeze en versiones que satisfacen los requisitos de compilación.

Observe también que tengo libncurses5-dev instalado

apt-show-versions libncurses5-dev libncurses5-dev/squeeze uptodate 5.7+20100313-5

Ambos paquetes corresponden a las curses 5.7+20100313-5 paquete fuente curses 5.7+20100313-5 . Observe que libtinfo-dev de hecho reemplaza a libncurses5-dev .

apt-cache show libtinfo-dev Package: libtinfo-dev Source: ncurses Version: 5.9-4 Installed-Size: 279 Maintainer: Craig Small <[email protected]> Architecture: i386 Replaces: libncurses5-dev (<< 5.9-3) Depends: libtinfo5 (= 5.9-4)

Uno no esperaría que Python 2.7 se desarrollara en una versión específica de maldiciones, y de hecho no es así. Sin embargo, si intentas construir los paquetes sin satisfacer la dependencia que obtienes

debuild -uc -us dpkg-checkbuilddeps: Unmet build dependencies: libtinfo-dev dpkg-checkbuilddeps: Build conflicts: libncurses5-dev debuild: fatal error at line 1289: You do not appear to have all build dependencies properly met. You can use mk-build-deps to generate a dummy package which Depends on all the required packages, or you can install them manually using dpkg or apt using the error messages just above this message.

Por lo tanto, es necesario editar debian/control . Tenga en cuenta que también necesita editar de manera similar el archivo debian/control.in , de lo contrario, el archivo de control se regenerará de forma incorrecta desde control.in . Lo más simple es simplemente eliminar libncurses5-dev de la línea Build-Conflicts y libtinfo-dev de la línea Build-Depends , y luego ejecutar debuild -uc -us nuevamente. Si vas a tener este paquete instalado junto con los paquetes estándar predeterminados de Python 2.6 en Debian squeeze, también debes eliminar las dos líneas

Conflicts: python-profiler (<= 2.7.1-2) Replaces: python-profiler (<= 2.7.1-2)

Esas líneas están ahí porque 2.7 incluye la funcionalidad python-profiler . Si 2.7 es el pitón predeterminado, entonces python-profiler ya no es necesario. Sin embargo, si uno está instalando 2.7 como un Python no predeterminado, ese razonamiento no se aplica, y python-profiler aún lo necesita 2.6.

Esto debería compilarse correctamente y dar como resultado la siguiente lista de paquetes binarios.

ls -lah *.deb -rw-r--r-- 1 faheem staff 289K Jan 12 02:33 idle-python2.7_2.7.2-8_all.deb -rw-r--r-- 1 faheem staff 1.1M Jan 12 02:34 libpython2.7_2.7.2-8_i386.deb -rw-r--r-- 1 faheem staff 2.5M Jan 12 02:34 python2.7_2.7.2-8_i386.deb -rw-r--r-- 1 faheem staff 12M Jan 12 02:34 python2.7-dbg_2.7.2-8_i386.deb -rw-r--r-- 1 faheem staff 4.9M Jan 12 02:34 python2.7-dev_2.7.2-8_i386.deb -rw-r--r-- 1 faheem staff 6.0M Jan 12 02:33 python2.7-doc_2.7.2-8_all.deb -rw-r--r-- 1 faheem staff 692K Jan 12 02:33 python2.7-examples_2.7.2-8_all.deb -rw-r--r-- 1 faheem staff 1.7M Jan 12 02:34 python2.7-minimal_2.7.2-8_i386.deb

Finalmente, uno puede instalar los paquetes binarios con

dpkg -i python2.7-minimal_2.7.2-8_i386.deb python2.7_2.7.2-8_i386.deb python2.7-dev_2.7.2-8_i386.deb libpython2.7_2.7.2-8_i386.deb

A veces, dpkg puede ser un poco difícil para satisfacer las dependencias cuando están todas instaladas a la vez, por lo que es posible que tengas que ejecutar apt-get -f install luego si obtienes errores de dependencia o, alternativamente, instala los paquetes en grupos más pequeños.


Lo hice con pythonbrew en mi máquina Ubuntu 10.10.

$ python -V Python 2.6.6 $ curl -kL https://raw.github.com/utahta/pythonbrew/master/pythonbrew-install | bash $ . $HOME/.pythonbrew/etc/bashrc $ pythonbrew install 2.7.1 $ pythonbrew switch 2.7.1 Switched to Python-2.7.1 $ python -V Python 2.7.1

También lo usé para instalar Python 3.2 .



Puede usar virtualenv para crear entornos de Python distintos. Simplemente siendo informativo, pero ¿qué tiene Python 2.7 que necesita?



ubuntu 12.04

Instalar dependencias:

$ sudo apt-get install python-software-properties

Agregue el repositorio:

$ sudo add-apt-repository ppa:fkrull/deadsnakes

Actualiza el índice de repos:

$ sudo apt-get update

Instalar Python 3.3:

$ sudo apt-get install python3.3

ubuntu 12.04> más

Instalando las dependencias:

$ sudo apt-get install build-essential libsqlite3-dev sqlite3 bzip2 libbz2-dev

Descargue y compile Python:

$ wget http://python.org/ftp/python/3.3.0/Python-3.3.0.tar.bz2 $ tar jxf ./Python-3.3.0.tar.bz2 $ cd ./Python-3.3.0 $ ./configure --prefix=/opt/python3.3 $ make && sudo make install

Algunos toques bonitos para instalar un comando py al crear un enlace simbólico:

$ mkdir ~/bin $ ln -s /opt/python3.3/bin/python ~/bin/py