SyntaxError: invalid syntax usando equery en Gentoo
Usando Gentoo, me encontré con el siguiente error al lanzar el mandato equery:
$ sudo equery belongs somefile
File "/usr/bin/equery", line 271
print pp.path(" /" + c[0])
^
SyntaxError: invalid syntax
Tras darle unas vueltas y no encontrar gran cosa en Internet Google
, acabé pensando que podía tener que ver con el intérprete de python instalado. No estoy seguro de cómo llegué a esa conclusión, pero supongo que ayudaron el hecho de ver que equery está escrito en python, que mi sistema tenía instalados varios intérpretes (concretamente los más actuales de la versión 2 y 3 del mismo), y que otra máquina con Gentoo usaba otro intérprete y no sufría el problema.
Para resolverlo, lo primero es buscar pistas. Al trabajar con varias versiones, lo normal es que el ejecutable sea un enlace a la versión elegida. Así que fue cuestión de ver a dónde apuntaba dicho enlace y buscar el paquete involucrado.
$ ls -l /usr/bin/python lrwxrwxrwx 1 root root 14 jul 14 12:21 /usr/bin/python -> python-wrapper $ equery belongs /usr/bin/python-wrapper [ Searching for file(s) /usr/bin/python-wrapper in *... ] app-admin/eselect-python-20100321 (/usr/bin/python-wrapper) $ equery files app-admin/eselect-python [ Searching for packages matching app-admin/eselect-python... ] * Contents of app-admin/eselect-python-20100321: /etc/env.d/python/.keep_app-admin_eselect-python-0 /usr/bin/python-wrapper /usr/share/eselect/modules/python.eselect
Parece que eselect es la herramienta que usa portage para decidir qué versión se usa cuando un paquete tiene varias instaladas. Por lo que se ve arriba, cada paquete instala sus propios módulos para informar a eselect de qué versiones hay disponibles, etc. A partir de aquí, jugando un poco con el mandato eselect, encontrar la forma de cambiar la versión no es difícil:
$ eselect Usage: eselect... $ eselect python Usage: eselect python ... $ eselect python list Available Python interpreters: [1] python2.6 [2] python3.1 * $ sudo eselect python set python2.6
Y, efectivamente, eso resuelve el problema y equery vuelve a funcionar
.
Parecidos razonables
-
Could not find compatible GRE between version 1.9.1.8 and 1.9.1.8 al arrancar Firefox
mayo 6, 2010
2 -
Musepack MPC a MP3 en Ubuntu Linux
enero 15, 2008
2 -
Programmed shutdown: pequeño script para apagar la máquina
abril 17, 2009
11 -
Mandato PS con salida “personalizada”
marzo 8, 2010
0 -
Ruby On Rails + Passenger + Apache + MySQL + SQLite en Debian 5
julio 16, 2009
6

Efectivamente: http://docs.python.org/release/3.0.1/whatsnew/3.0.html#print-is-a-function