Не удалось найти pygtk из-за порядка PATH? Где определен PATH по умолчанию?

Не удалось найти pygtk из-за порядка PATH? Где определен PATH по умолчанию?

Я установил программу, которая импортировала pygtk. Она работала нормально в моей среде, но «пустая» среда (например, новый пользователь) не работала.

Я определил, что это из-за PATH. Однако разрешение было озадачивающим.

Мой PATH был установлен следующим образом:

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

По умолчанию установлено следующее:

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

Единственное отличие — порядок. Конкретно я поставил /usr/binвыше /usr/local/bin.

Без этого небольшого изменения программа выдаст ошибку:

    import pygtk
ImportError: No module named pygtk

Я не думал, что порядок PATH так важен, но, видимо, это так. Почему система должна так беспокоиться? Она находит и пытается выполнить программу до того, как ее найдет pygtk?

решение1

Порядок PATH может быть весьма важен: когда вы запускаете программу, оболочка ищет имя программы в каждом из компонентов вашего пути, начиная с первого. Если две программы с одинаковым именем существуют в двух путях (по любой причине), она будет использовать ту, которую найдет первой. Похоже, в вашем случае у вас действительно есть две копии какой-то программы, хотя я не знаю, python это или что-то еще вроде программы, которая сообщает python, где найти компоненты и т. д.

Связанный контент