
Instalé un programa que importaba pygtk. Funcionó bien en mi entorno, pero un entorno "en blanco" (por ejemplo, un usuario nuevo) no funcionaría.
Determiné que se debía a PATH. Sin embargo, la resolución fue desconcertante.
Mi RUTA se configuró de la siguiente manera:
PATH=/usr/lib/qt-3.3/bin
PATH=$PATH:/bin
PATH=$PATH:/usr/bin
PATH=$PATH:/usr/local/bin #******
PATH=$PATH:/sbin
PATH=$PATH:/usr/sbin
PATH=$PATH:/usr/local/sbin
PATH=$PATH:/home/td69386/bin
El valor predeterminado se estableció de la siguiente manera:
PATH=/usr/lib/qt-3.3/bin
PATH=$PATH:/usr/local/bin #*****
PATH=$PATH:/bin
PATH=$PATH:/usr/bin
PATH=$PATH:/usr/local/sbin
PATH=$PATH:/usr/sbin
PATH=$PATH:/sbin
PATH=$PATH:/home/td69386/bin
La única diferencia es el orden. En concreto lo puse /usr/bin
arriba /usr/local/bin
.
Sin este pequeño cambio el programa genera errores con:
import pygtk
ImportError: No module named pygtk
No pensé que el orden de PATH fuera tan importante, pero aparentemente lo es. ¿Por qué le importaría tanto al sistema? ¿Está buscando e intentando ejecutar el programa antes de encontrar pygtk?
Respuesta1
El orden de la RUTA puede ser bastante importante: cuando ejecuta un programa, el shell busca el nombre del programa en cada uno de los componentes de su ruta, comenzando por el primero. Si existen dos programas con el mismo nombre en dos de las rutas (por cualquier motivo), utilizará el que encuentre primero. En su caso, parece que de hecho tiene dos copias de algún programa, aunque no sé si es Python o algo así como un programa que le dice a Python dónde encontrar componentes, etc.