# Python (Español)

Related articles

- Python Package Guidelines
- Python VirtualEnv
- mod_wsgi

De la Wikipedia:

  Python es un lenguaje de programación interpretado cuya filosofía hace hincapié en una sintaxis que favorezca un código legible.
  Se trata de un lenguaje de programación multiparadigma, ya que soporta orientación a objetos, programación imperativa y, en menor medida, programación funcional. Es un lenguaje interpretado, usa tipado dinámico y es multiplataforma.

## Instalación

Instala los paquetes python y/o python2 disponibles en los repositorios oficiales.

### Python 3

Python 3 es la última versión del lenguaje, y es incompatibles con Python 2. El lenguaje es esencialmente el mismo, pero muchos detalles han cambiado considerablemente, en especial el funcionamiento de los objetos integrados como los diccionarios o las cadenas, y muchas características obsoletas han sido finalmente eliminadas. Además, la biblioteca estándar se ha reorganizado en algunas partes importantes. Para ver un resumen de las diferencias, visita Python2orPython3 y concretamente el chapter relacionado de "Dive into Python 3".

Para instalar la última versión de Python 3, instala el paquete python desde los repositorios oficiales.

Si quisieras compilar el código de las últimas RC/betas, visita Python Downloads. El AUR también contiene PKGBUILDs adecuados. Si decides compilar la RC, ten en cuenta que el binario (por defecto) se instala en `/usr/local/bin/python3.x`.

#### VirtualEnv

Comenzar un proyecto dentro de un entorno virtualenv es tan simple como ejecutar:

    $ python -m venv proyecto
    $ source proyecto/bin/activate
    (proyecto)$ pip install <dependency>

The factual accuracy of this article or section is disputed.

Reason: El paquete python no incluye el comando pip. (Discuss in Talk:Python (Español)#)

### Python 2

Para instalar la última versión de Python 2, instala el paquete python2 desde los repositorios oficiales.

Python 2 puede convivir sin problemas con Python 3. Necesitas ejecutar `python2` para utilizar esta versión.

Cualquier programa que necesite Python 2 tiene que apuntar a `/usr/bin/python2`, en lugar de a `/usr/bin/python`, que apunta a Python 3.

Para hacer esto, abre el programa en un editor de texto y cambia la primera línea.

La línea mostrará una de las siguientes posibilidades:

    #!/usr/bin/env python

o

    #!/usr/bin/python

En ambos casos, simplemente cambia `python` por `python2` y el programa usará Python 2 en lugar de Python 3.

Otra forma de forzar el uso de python2 sin alterar los scripts es llamarlo explícitamente, por ejemplo:

    python2 miScript.py

Para terminar, es posible que no puedas controlar la ejecución de los scripts, pero hay una forma de trucar el entorno. Solo funciona si los scripts usan `#!/usr/bin/env python`, y no funcionará con `#!/usr/bin/python`. Este sistema depende de que `env` busque la entrada correcta en la variable PATH. Primero, crea un directorio de trabajo:

    $ mkdir ~/bin

Después, añade enlaces simbólicos a python2 y a sus scripts de configuración:

    $ ln -s /usr/bin/python2 ~/bin/python
    $ ln -s /usr/bin/python2-config ~/bin/python-config

Para terminar, añade el nuevo directorio al principio de tu variable PATH:

    $ export PATH=~/bin:$PATH

Ten en cuenta que este cambio no es permanente, sino que está activo solo en la sesión actual. Para comprobar qué intérprete de python está siendo usado por `env`, usa la siguiente orden:

    $ which python

Una solución similar para cambiar el entorno, que también depende de que el script en cuestión ejecute `#!/usr/bin/env python` es usar un entorno virtual Virtualenv. Cuando se activa un Virtualenv, el ejecutable de Python al que se apunta desde `$PATH` será el que se ha instalado con el Virtualenv. Así, si el Virtualenv se instaló con Python 2, `python` ejecutará Python 2. Para hacer esto, instala python2-virtualenv.

Después crea el Virtualenv.

    $ virtualenv2 venv # Crea un directorio, venv/, que contiene el Virtualenv

Activa el Virtualenv, lo que actualizará `$PATH` para que apunte a Python 2. Ten en cuenta que esta activación solo estará en vigor en la sesión actual.

    $ source venv/bin/activate

A partir de este momento, el script debería ejecutarse usando Python 2.

## Tratar los problemas de versión en los scripts de compilación

Muchos scripts de compilación de proyectos dan por hecho que `python` será Python 2, y esto podría provocar un error (normalmente indicando que `print 'foo'` es una sintaxis inválida. Afortunadamente, muchos de ellos llaman al `python` del `$PATH` en lugar de llamar a `#!/usr/bin/python` en la primera línea, y los scripts de Python suelen estar incluídos en el árbol del proyecto. Así que en lugar de modificar los scripts a mano, hay una solución fácil. Simplemente crea `/usr/local/bin/python` con el siguiente contenido:

    /usr/local/bin/python

    #!/bin/bash
    script=$(readlink -f -- "$1")
    case "$script" in (/ruta/del/proyecto1/*|/ruta/del/proyecto2/*|/ruta/del/proyecto3*)
        exec python2 "$@"
        ;;
    esac

    exec python3 "$@"

Donde `/ruta/del/proyecto1/*|/ruta/del/proyecto2/*|/ruta/del/proyecto3*` es una lista de patrones separados por `|` y que coincide con todos los árboles de proyectos.

No olvides hacerlo ejecutable.:

    # chmod +x /usr/local/bin/python

Después de esto, los scripts en los árboles de proyecto especificados se ejecutarán con Python 2.

## Completado de sintaxis en el shell de Python

Copia esto en la consola interactiva de Python:

    /usr/bin/python

    import rlcompleter
    import readline
    readline.parse_and_bind("tab: complete")

Fuente

## Widget bindings

Los siguientes widget toolkit bindings están disponibles:

- TkInter — Bindings Tk

  http://wiki.python.org/moin/TkInter || módulo estándar

- pyQt — Bindings Qt

  http://www.riverbankcomputing.co.uk/software/pyqt/intro || python2-pyqt4 python2-pyqt5 python-pyqt4 python-pyqt5

- pySide — Bindings Qt

  http://www.pyside.org/ || python2-pyside python-pyside

- pyGTK — Bindings GTK+ 2

  http://www.pygtk.org/ || pygtk

- PyGObject — Bindings GTK+ 2/3 mediante introspección de GObject

  https://wiki.gnome.org/PyGObject/ || python2-gobject2 python2-gobject python-gobject2 python-gobject

- wxPython — Bindings wxWidgets

  http://wxpython.org/ || wxpython

Para usar estos con Python, puedes necesitar instalar los kits de widgets asociados.

## Versiones antiguas

Las versiones antiguas de Python están disponibles en el AUR y pueden ser útiles como curiosidad histórica, para ejecutar aplicaciones viejas que no funcionen con las versiones actuales, o para probar programas en Python que se deban ejecutar en distribuciones que incluyan versiones antiguas de Python (p. ej. RHEL 5.x tiene Python 2.4, y Ubuntu 12.04 tiene Python 3.1):

- python15AUR: Python 1.5.2
- python24AUR[broken link: archived in aur-mirror]: Python 2.4.6
- python25AUR: Python 2.5.6
- python26AUR: Python 2.6.9
- python30AUR: Python 3.0.1
- python31AUR[broken link: archived in aur-mirror]: Python 3.1.5
- python32AUR: Python 3.2.5
- python33AUR: Python 3.3.5

Desde Julio de 2014, Python oficialmente solo soporta Python 2.7, 3.2, 3.3 y 3.4 para correcciones de seguridad. El uso de versiones más antiguas para aplicaciones expuestas a Internet o para código inseguro puede ser peligroso y no se recomienda.

Se pueden encontrar en el AUR módulos o bibliotecas adicionales para Python buscando python (versión sin punto), por ejemplo, buscando "python26" para módulos de la versión 2.6.

## Sugerencias y trucos

IPython es una línea de órdenes mejorada disponible en los repositorios oficiales como ipython y ipython2.

Category:

- Programming languages (Español)

Hidden categories:

- Pages or sections flagged with Template:Accuracy
- Pages with broken package links