
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에 구성 요소를 찾을 수 있는 위치 등을 알려주는 프로그램과 같은 다른 것인지는 알 수 없습니다.