Python (Español)
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 incompatible 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. 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>
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[enlace roto: package not found].
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")
Widget bindings
Los siguientes widget toolkit bindings están disponibles:
- TkInter — Bindings Tk
- https://wiki.python.org/moin/TkInter || módulo estándar
- pyQt — Bindings Qt
- http://www.riverbankcomputing.co.uk/software/pyqt/intro || python2-pyqt4AUR python2-pyqt5[enlace roto: package not found] python-pyqt4AUR python-pyqt5
- pySide — Bindings Qt
- pyGTK — Bindings GTK 2
- http://www.pygtk.org/ || pygtkAUR
- PyGObject — Bindings GTK 2/3 mediante introspección de GObject
- https://wiki.gnome.org/PyGObject/ || python2-gobject2AUR python2-gobject python-gobject2[enlace roto: package not found] python-gobject
- wxPython — Bindings wxWidgets
- https://wxpython.org/ || wxpython[enlace roto: replaced by python2-wxpython3]
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[enlace roto: package not found]
- python25AUR
- python26AUR[enlace roto: package not found]
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 ipython2AUR.