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


27

Geçenlerde Mac OS X 10.5 Leopard kurulumumu 10.6 Snow Leopard'a yükselttim ve bununla birlikte Python'un 2.6.1 sürümü (bunun yerine 2.5.1) yükseltildi. Şimdi pythonTerminal yazarken 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.
>>>

Ben de baktım /usr/bin/ve ben yazmak zorunda Python 2.6 almak bulundu python2.6.

Soru şudur: Komut haritasını Python 2.6 ile nasıl yaparım python?

Yanıtlar:


21

Bu kolay:

defaults write com.apple.versioner.python Version 2.6

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

Ayrıca, bir tane var: bilgisayarınızla birlikte gelen Python'u çalıştırdığınızdan emin olun, yüklü olanlardan değil. Bunu which pythonkomut isteminize yazarak yapın. İşaret etmeli /usr/bin/python. 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üncelleştirme

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. Yaptıktan sonra defaults write com.apple.versioner.python Version 2.6, Python'un varsayılan versiyonu gerçekten 2.6. (Aynı şekilde 2.7'ye döndükten sonra)

Bu, pythondoğrudan çalıştırmam veya #!/usr/bin/env pythonPython'un beklenen sürümünü aldığımdan başlayarak çalıştırılabilir bir komut dosyası kullanıp kullanmadığım doğrudur .

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, kısa bir komut dosyasını çalıştırmak print()s sys.pathve 2.6 kütüphane dizinleri (benim nispeten varsayılan ayarlarına en azından) olan yolda ve 2.7 dirs vardır değil yolda. Ne de Currentyolda sembolik olarak dizin. Bu yüzden çoğu senaryo için problem olmamalı.

Bununla birlikte, Currentsembolik bağlantının ya easy_installda tarafından kullanıldığı , test edilmemiş olanın mümkün olması mümkündür pip. Bu sorunlara neden olur. Python sürümünü güncellediğinizde sembolik bağlantının güncellenmediği bir hata gibi görünüyor.


3
Haklıydın. Çok uzun zaman önce MacPython'u kurmuştum ve bu PATH değişkenimi bu kadar pythonişaret etti /Library/Frameworks/Python.framework/Versions/Current/bin. Doğal olarak bu 2.6'ya yükselmedi. Bu yüzden PATH değişkenimi Google’da bulduğum varsayılanla değiştirdim ve şimdi MacPython’u sistemimden kaldıracağım.
SBSTN

@SBSTN Aynı sorunu var (python yolu işaret /Library/Frameworks/Python.framework/Versions/Current/bin) Bunu nasıl değiştirebilirim?
Zach

Artık hiçbir / Library / Frameworks / Python * olmadığından Xcode4 ile çalışmaz ve / usr / bin / python artık başka bir yere işaret etmez. Herhangi bir fikir? MacPorts bir çözüm olurdu, ancak yüklemek istemiyorum.
Alex

Xcode 4'ü yükledim ve hala açıklandığı şekilde çalışıyor. /usr/bin/pythonbir link değil, çalıştırılabilir. /usr/bin/python2.6işaret eden bir link ../../System/Library/Frameworks/Python.framework/Versions/2.6/bin/python2.6. Python çalıştırılabilir dosyasında olduğu göz önüne alındığında, /System/Libraryhangi Xcode sürümünün yüklü olup olmadığına bakılmaksızın erişilebilir olması gerekir.
Nate

Bu insanların sorduğu şeyi yapmaz. Bunun neden cevap olduğundan emin değilim.
010110110101

12

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

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

İ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 bu Snow Leopard ile varsayılan olarak gelen az piton sürümü yazdırılır: 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.

İstenilen paketleri kurmak için, örneğin python 2.4

sudo port install python24

Şimdi de python_select -syeni kurulan python gösterilecek. 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.


5

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

% type -a python

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

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


3

İ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.


1
Bu yaptığım şeye benzer. Ama bunun yerine / usr / bin linkini koydum ve "python" olarak adlandırdım (Apple'ın koyduğu eski "python" dosyasını geçersiz kılarak). Yani: sudo ln -s /path/to/2.7 /usr/bin/python. Linux'ta böyle yapılır ve sadece mantıklı gelir.
Nacht

0

İdeal değil (IMO), ancak bu pythonbenim için arayan tüm uygulamaları düzeltti /usr/local/bin/.

sudo cp /usr/local/bin/python3 /usr/local/bin/python

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


bu gerçekten kötü bir fikir. Sembolik bağlantı kullanarak anlaşılabilir, ancak ikili dosyaları ileri geri kopyalamak iyi bir fikir DEĞİLDİR.
Jakuje

Anladığım kadarıyla, sadece terminalde python yazıp Python3.x 'i işaret etmesini istiyorum ... bunu düzeltmek için çok geç değil.
AGDM
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.