it-swarm.asia

Snow Leopard'daki varsayılan Python sürümünü nasıl değiştirebilirim?

Geçenlerde Mac OS X 10.5 Leopard kurulumumu 10.6 Snow Leopard'a yükselttim ve bununla Python'un 2.6.1 sürümü (bunun yerine 2.5.1) yükseltildi. Şimdi Terminalde python yazdığımda hala alıyorum

Python 2.5.1 (r251:54869, Apr 18 2007, 22:08:04) 
[GCC 4.0.1 (Apple Computer, Inc. build 5367)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

/usr/bin/ dosyasına baktım ve Python 2.6'yı elde etmek için python2.6 yazmam gerektiğini öğrendim.

Soru şudur: python komut haritasını Python 2.6 ile nasıl yapabilirim?

27
SBSTN

Bu kolay:

defaults write com.Apple.versioner.python Version 2.6

Apple'dan tam bir açıklama için man python bakınız.

Ayrıca, bir tane var: yüklü olanlardan değil, bilgisayarınızla birlikte gelen Python'u çalıştırdığınızdan emin olun. Bunu Komut İsteminize which python yazarak yapın. /usr/bin/python işaret etmelidir. Sadece bahsettiğim için varsayılan değerim Snow Leopard'ın altında 2.6 (Leopard kullanırken 2.5 idi). Dolayısıyla, 2,5 elde ettiğiniz gerçeği, yolunuzda başka bir şey olduğunu gösterebilir.

Güncelleme

Aşağıdaki yorumları ele almak için:

Bu insanların sorduğu şeyi yapmaz.

OS X 10.8.2'de benim için yapar. defaults write com.Apple.versioner.python Version 2.6 işlevini yaptıktan sonra, Python'un varsayılan sürümü gerçekten 2.6'dır. (Aynı şekilde 2.7'ye döndükten sonra)

Doğrudan doğruya python komutunu çalıştırdığımdan veya #!/usr/bin/env python ile başlayan yürütülebilir bir komut dosyası kullandığımdan bu doğru. Python'un beklenen sürümünü alıyorum.

Bu, /System/Library/Frameworks/Python.framework/Versions adresindeki sembolik bağlantıyı çözmez, burada Geçerli nokta 2,7'dir ve bu sorunlara neden olabilir (çünkü hala 2,6 ile sys.path!)

Gerçekten, bu bağlantıyı düzeltmiyor.

Ancak, print()s sys.path ve (en azından göreceli olarak varsayılan kurulumumda) 2.6 kütüphane dizinlerinin yolda ve 2.7 dir'de kısa bir komut dosyası çalıştırın. yolda değil. Yoldaki Current symlinked dizini de değildir. Bu yüzden çoğu senaryo için problem olmamalı.

Ancak, test edilememiştir - Current sembolik bağının easy_install veya pip tarafından kullanılması mümkündür. Bu sorunlara neden olur. Python sürümünü güncellerken sembolik bağlantının güncellenmediği bir hata gibi görünüyor.

21
Nate

Mac portlarını kullanmanızı öneririm ...

Paralel olarak piton kullanımına izin veren python_select adlı bir paket var. Öyleyse ilk kurulum mac portları önceden kurulmamışsa.

İlk önce python_select paketini kurun:

Sudo port install python_select

Şimdiden, sisteminizde hangi python dağılımlarının mevcut olduğunu kontrol edebilirsiniz. Sadece komutu verin:

port select --list python     (MacPorts 2.x)
python_select -l              (MacPorts 1.x)

Benim durumumda varsayılan olarak Snow Leopard ile birlikte gelen en az python sürümünü yazdı: python26-Apple.

port select --show python     (MacPorts 2.x)
python_select -s              (MacPorts 1.x)

seçili sürümü gösterir, örn. python26-Apple. Görüyorsunuz, bu paket Mac ile güzel bir şekilde oynuyor. Daha fazla seçenek sorunu için

port select                   (MacPorts 2.x)
python_select -h              (MacPorts 1.x)

Limanlar deposundaki mevcut python versiyonunu arayabilirseniz:

port search python

Bu pitonlar mevcut olacak uzun bir liste üretecek.

İstediğiniz paketleri kurmak için, ör. python 2.4 yürütmek:

Sudo port install python24

Şimdi python_select -s, yeni kurulan pitonu da gösterecektir. Python 2.4 sayısına geçmek için:

Sudo port select --set python python24  (MacPorts 2.x)
Sudo python_select python24             (MacPorts 1.x)

Bu komut, kabuklar arasında kalıcıdır.

12
ovanes

Bash kullandığınızı varsayarsak, şunu yazın:

% type -a python

Bu, PATH'nizdeki tüm "python" çalıştırılabilirlerini, takma adlarını, Shell yerleşiklerini (muhtemelen yok) veya bash işlevlerini gösterir.

Bu, burada neler olduğunu daha iyi tanımlamanıza yardımcı olacaktır.

5
Doug Harris

İstediğiniz sürüme bir bağlantı oluşturmak istiyorsunuz.

cd /Library/Frameworks/Python.framework/Versions 
Sudo rm Current 
Sudo ln -s /Library/Frameworks/Python.framework/Versions/2.6 Current

Bu, geçerli işaretçiyi varsayılan Python sürümünüze kaldırır ve 2.6 sürümünüze ayarlar.

3
curious

İdeal değil (IMO), ancak /usr/local/bin/ adresindeki python öğesini arayan tüm uygulamaları düzeltti.

Sudo cp /usr/local/bin/python3 /usr/local/bin/python

Tabii ki, en son Python sürümünü yükledikten sonra.

0
AGDM