Não foi possível encontrar o pygtk por causa da ordem PATH? Onde o PATH padrão é definido?

1

Eu instalei um programa que importava o pygtk. Funcionou bem no meu ambiente, mas um ambiente "em branco" (por exemplo, um novo usuário) não funcionaria.

Eu determinei que era devido ao PATH. A resolução foi desconcertante embora.

Meu PATH foi definido assim:

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

O padrão foi definido da seguinte forma:

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

A única diferença é ordem. Especificamente, coloquei /usr/bin acima de /usr/local/bin .

Sem essa pequena alteração, os erros do programa com:

    import pygtk
ImportError: No module named pygtk

Eu não achei que o pedido do PATH era tão importante, mas aparentemente é. Por que o sistema se importaria tanto assim? Está encontrando e tentando executar o programa antes que ele seja encontrado pygtk?

    
por Mike Dannyboy 17.04.2018 / 20:05

1 resposta

1

A ordenação do PATH pode ser muito importante: quando você executa um programa, o shell pesquisa o nome do programa em cada um dos componentes do seu caminho, começando do primeiro. Se dois programas com o mesmo nome existirem em dois dos caminhos (por qualquer motivo), ele usará aquele que encontrar primeiro. Parece no seu caso que você de fato tem duas cópias de algum programa, embora eu não saiba se é python ou algo parecido com um programa que diz ao python onde encontrar componentes, etc.

    
por 24.04.2018 / 17:06