2009-09-05 17 views
5

Birden çok python sürümü yüklüyorsanız (şu anda varsayılan 2.5, yüklü 3.0.1 ve şimdi 2.6.2 yüklüyüm), otomatik olarak /usr/local ve aynı zamanda /Library/Frameworks/Python/Versions/theVersion/bin içerme yolunu da ayarlar, ancak /usr/local halihazırda PATH'de olduğunda ve kurulu tüm sürümlerde (varsayılan 2.5, /usr/bin içinde olanlar dışında) bu noktaya ne gelir? Python framework yollarını .bash_profile içinde PATH'ımdan kaldırdım ve hala "python -V" => "Python 2.5.1", "python2.6 -V" => "Python 2.6.2", "python3 -V" => "Python 3.0.1" yazabilirsiniz. Sadece neden /usr/local numaralı telefona koyduklarını ve ayrıca PATH'ı değiştirdiğini merak ediyorum. Peki ben iyi yaptım mı? Teşekkürler. Ayrıca OS X - çoklu python sürümleri, PATH ve/usr/local

, 2.6 kurulum 2.6'ya /usr/local/bin noktada. 2.6'ya .../Python.framework/Versions/Current noktasına sahip, kimse 'geçerli' Yani düz 'piton' şeyler yapılmış, ancak usr/bin ile önce gelir ve işler çünkü önemli değil Aynı adda 2.5 şey var .. Neyse, 2.5, leoparla birlikte geliyor, sadece en son sürüme sahip olmak için 3.0.1 kurdum (bir dmg dosyası var), ve şimdi de 2.6 oyununu pygame ile kurdum.

DÜZENLEME: Tamam, işte nasıl anladım. Python 2.6.2: 'u yüklediğinizde, /usr/local/bin'a bir çok symlinks eklenir, böylece bir python betiğinde bir #! /usr/local/bin/python shebang varsa, o çalışır ve /Applications/Python 2.6, Python Launcher çalıştırmak için varsayılan uygulama yapılır. /usr/local/bin/pythonw ve /Library/Frameworks/Python.framework/Versions/2.6/bin kullanan py dosyaları oluşturulur ve yolun önüne eklenir, böylece which python python'u oraya alır ve ayrıca #! /usr/bin/env python shebang'ler doğru şekilde çalışır.

+0

python'un virtualenv paketi nedir? Bu, bir makinede birden fazla python kurulumuna sahip olmanın oldukça popüler bir yolu gibi görünüyor. Diğer kullanıcılar bu işi kendi x makinelerinde mi yaptı? – Foofy

cevap

5

/usr/local/bin'in PATH'de (özellikle "/ usr/bin! - - önünde kalmayacak") kalmayacağına dair bir ön garanti yoktur. Özellikle ihtiyaç duyulan /Library/.../bin dizini PATH'a giriyor. Ayrıca, /Library/.../bin,/usr/local/bin ile ilişkilendirilmeyecek ek öğelere sahip olsa da, Python'un en son Mac standart dağıtımlarında bu durumun geçerli olmadığını düşünüyorum.

Yolunuzu düzenleyeceğiniz yolun ve kullanacağınız tam yürütülebilir kümenin/usr/local/bin dizininden tamamen memnun olduğunu biliyorsanız, o zaman Kendi yolunuzdan kütüphane/etc dizinleri, elbette.

+0

Ya da Python 2.6'yı kaldırsaydım?/ Applications ve /Library/..../Versions/2.6.2'den kaldırabilirim, ama/usr/local /? Bir grup kırık sembolik arkada kalmaz mı? Ve ben orada 2.6.2 olanları seçmeye çalışırken etrafta dolaşmak istemem .. Bilmiyorum .. – mk12

+0

Evet, özellikle (az) 2.6'ya özgü symlinks'i çıkarmanız gerekmiyor. bir "kaldırma" ile gelen bir dağıtım kullanıyorum (python.org'dan standart olmayan bir model olduğuna inanıyorum) - 'ls -l/usr/local/bin | grep 'Python. * 2.6' 'onları kolayca tanıyacaktır, yani "karışıklık" ya da "almaya çalışmak" yoktur. –

+0

Ayrıca/usr/local/bin'deki her şeyden kurtulabildim ve /Python.framework/Versions/x.x.x/bin yoluna istediğim sırada koydum mu? – mk12

0

Bu sorunu yalnızca Mac'imde fark ettim/gördüm. Makinemde Python 2.5.4, 2.6.2 ve 3.1.1 var ve bunlar arasında kolayca değişiklik yapmanın bir yolunu arıyordum. Bu, '/ usr/bin' ve '/ usr/local/bin' dizinlerinde bulduğum yürütülebilirlerin tüm simitlerini fark ettiğim zamandır. Ben python2.5, python2.6, vb bırakarak, tüm non-version özel symlinks sökük ve benim seçimimin yoluna yönlendirmek için kullandığım bir sembolik bağlantıyı değiştirmek için root olarak çalıştırabileceğiniz bir bash kabuk betiği yazdım

'/Library/Frameworks/Python.framework/Versions/Current'

diğer bazı uygulama nedense bunları gerekirse sembolik koparmak hakkında tek kötü şey vardır. Bu simitlerin neden oluşturulduğuna dair fikrim, Alex'in değerlendirmesine benzer, yükleyici tüm üsleri kapsayamaya çalışıyor. Tüm sürümlerim bir yükleyici tarafından yüklenmiştir, ancak tam 64 bit desteğini etkinleştirmek için kendi başıma derlemeyi denedim, ve derlerken ve yüklerken, oluşturulan symlinks'i veya PATH'ı değiştirmeyi seçemezsiniz. Kurulum.