PATH sırası nedeniyle pygtk bulunamadı mı? Varsayılan PATH nerede tanımlanır?


1

Pygtk dosyasını ithal eden bir program kurdum. Ortamımda iyi çalıştı, ancak "boş" bir ortam (örneğin yeni bir kullanıcı) işe yaramadı.

PATH yüzünden olduğunu belirledim. Çözünürlük olsa da şaşırtıcıydı.

PATH'im şu şekilde ayarlandı:

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

Varsayılan ayar şu şekilde yapıldı:

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

Tek fark düzendir. Özellikle /usr/binyukarıda koydum /usr/local/bin.

Bu küçük değişiklik olmadan program hataları ile:

    import pygtk
ImportError: No module named pygtk

PATH siparişinin bu kadar önemli olduğunu düşünmedim, ama görünüşe göre öyle. Sistem neden bu kadar önemsiyor? Pygtk bulunmadan önce programı bulup çalıştırmaya mı çalışıyor?

Yanıtlar:


1

PATH'ın sıralaması oldukça önemli olabilir: bir programı çalıştırdığınızda, kabuk, yolun her bir bileşeninde, ilkinden başlayarak programın adını arar. Aynı isimde iki program iki yolun içinde mevcutsa (hangi nedenle olursa olsun) ilk bulduğu programı kullanacaktır. Öyle görünüyor ki aslında bir programın iki kopyası var, ancak python veya python'a nerede bileşenleri bulacağını söyleyen bir program gibi bir şey olup olmadığını bilmiyorum.


Ah, bir eşleşme bulduktan sonra aramayı durdurur . Bazı nedenlerden dolayı devam edeceğini düşünüyorum, ama geçmişe bakıldığında biraz aptalca; Neden böyle olacağını düşündüğümü bilmiyorum. Teşekkürler!
Mike Dannyboy
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.