¿No se pudo encontrar pygtk debido al orden de PATH? ¿Dónde se define la RUTA predeterminada?

¿No se pudo encontrar pygtk debido al orden de PATH? ¿Dónde se define la RUTA predeterminada?

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/binarriba /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.

información relacionada