varsayılan python sürümü nasıl değiştirilir?


107

Mac'ime python 3.2 yükledim. / Applications / Python 3.2 / Update Shell Profile.command komutunu çalıştırdıktan sonra , Terminal'e python -V yazdığımda Python 2.6.1'in varsayılan python sürümünü nasıl değiştirebilirim demesi kafa karıştırıcı.



Kullanarak güzel bir çözüm için opensource.com/article/19/5/python-3-default-mac sayfasına bakın pyenv.
Thomas Ahle

Yanıtlar:


115

Bu muhtemelen geriye dönük uyumluluk için istenir.

Python3 geriye dönük uyumluluğu bozar ve 'python'u çağıran programlar muhtemelen python2'yi bekler. Muhtemelen, farkında bile olmadığınız, python = python2 bekleyen birçok programınız ve komut dosyanız vardır ve bunu değiştirmek bu programları ve komut dosyalarını bozacaktır.

Muhtemelen aradığınız cevap , bunu değiştirmemelisiniz .

Bununla birlikte, kabuğunuzda özel bir takma ad oluşturabilirsiniz. Bunu yapma şekliniz kabuğa bağlıdır, ancak belki de yapabilirsinizalias py=python3

Python'un en son sürümünü nasıl başlatacağınız konusunda kafanız karıştıysa, en azından Linux'ta kurulumunuzu sağlam python3bırakan durumdur (yukarıdaki uyumluluk nedenlerinden dolayı) ; böylece python3'ü komutla başlatabilirsiniz .python2python3


36
Bu yararlı bir bilgidir, ancak soru "varsayılan python sürümünü nasıl değiştirebilirim" idi. Bunu yapmaya çalışan insanlara yardımcı olacak bir şeyler ekleyebilir miyiz?
dmeyerson

Mac'te Python3 kurulumu, Python2'yi de olduğu gibi bırakır. Ama bana öyle geliyor ki, sadece "python" yazıldığında çalıştırılan varsayılanı değiştirmenin bir yolu var. Seçeneğe bir kez rastladım. "Python --version" 2.7.12'yi ve "python3 --version" 3.7.0'ı gösterdiği yerde bırakmayı seçtim. Sorunun nasıl değiştirileceği konusunda yukarıda dmeyerson'a katılıyorum. Tavsiyeniz iyidir, ancak mecbursanız (veya gerçekten, gerçekten istiyorsanız) onu değiştirmenin bir yolu vardır.
Rich Sadowsky

3
> Muhtemelen aradığınız cevap, bunu değiştirmemelisiniz. Ve burada "bunu nasıl değiştirebilirim" olduğunu düşündüm!
duane

2
Bu cevap doğrudur. Sistem düzeyinde neyin pythonişaret ettiğini değiştirmeyin , aksi takdirde işletim sisteminizin önemli bileşenlerini kırabilirsiniz . Bunun yerine, ayrı bir Python 3 kurulumu kullanın ve kendinize "yerel" bir varsayılan Python vermek için sanallaştırın.
Martijn Pieters

53

Python 3'ün konumunu kontrol edin

$ which python3
/usr/local/bin/python3

Bash_profile içinde takma ad yazın

vi ~/.bash_profile  
alias python='/usr/local/bin/python3'

Bash_profile'ı yeniden yükle

source ~/.bash_profile

Python komutunu onaylayın

$ python --version
Python 3.6.5

2
bu kötü bir çözüm. Kabul edilen cevapta belirtildiği gibi, $ pythonpython 2 için ayrılmıştır. Bilgisayarınızda çalıştırdığınız ve python 2'yi bekleyen herhangi bir program, daha sonra öngörülemeyen olumsuz sonuçlara yol açabilecek takma ad nedeniyle python 3 alır.
Shonin

Apple'ın niyetinin soruyla alakası yok.
duane

45

Görünüşe göre sahip olduğunuz python.org yükleyicisini kullanan Mac OS X'te, Python 3'ü python3değil ile çalıştırmanız gerekir python. Bu şu anda Python 2 sürümleri için ayrılmıştır. Bu python3.2sürümü özel olarak çağırmak için de kullanabilirsiniz .

$ which python
/usr/bin/python
$ which python3
/Library/Frameworks/Python.framework/Versions/3.2/bin/python3
$ cd /Library/Frameworks/Python.framework/Versions/3.2/bin/
$ ls -l
total 384
lrwxr-xr-x  1 root  admin      8 Apr 28 15:51 2to3@ -> 2to3-3.2
-rwxrwxr-x  1 root  admin    140 Feb 20 11:14 2to3-3.2*
lrwxr-xr-x  1 root  admin      7 Apr 28 15:51 idle3@ -> idle3.2
-rwxrwxr-x  1 root  admin    138 Feb 20 11:14 idle3.2*
lrwxr-xr-x  1 root  admin      8 Apr 28 15:51 pydoc3@ -> pydoc3.2
-rwxrwxr-x  1 root  admin    123 Feb 20 11:14 pydoc3.2*
-rwxrwxr-x  2 root  admin  25624 Feb 20 11:14 python3*
lrwxr-xr-x  1 root  admin     12 Apr 28 15:51 python3-32@ -> python3.2-32
lrwxr-xr-x  1 root  admin     16 Apr 28 15:51 python3-config@ -> python3.2-config
-rwxrwxr-x  2 root  admin  25624 Feb 20 11:14 python3.2*
-rwxrwxr-x  1 root  admin  13964 Feb 20 11:14 python3.2-32*
lrwxr-xr-x  1 root  admin     17 Apr 28 15:51 python3.2-config@ -> python3.2m-config
-rwxrwxr-x  1 root  admin  25784 Feb 20 11:14 python3.2m*
-rwxrwxr-x  1 root  admin   1865 Feb 20 11:14 python3.2m-config*
lrwxr-xr-x  1 root  admin     10 Apr 28 15:51 pythonw3@ -> pythonw3.2
lrwxr-xr-x  1 root  admin     13 Apr 28 15:51 pythonw3-32@ -> pythonw3.2-32
-rwxrwxr-x  1 root  admin  25624 Feb 20 11:14 pythonw3.2*
-rwxrwxr-x  1 root  admin  13964 Feb 20 11:14 pythonw3.2-32*

Ayrıca python.org'dan bir Python 2 kurduysanız, çakışan dosya adları içermeyen benzer bir çerçeve bin dizinine sahip olacaktır (2to3 hariç).

$ open /Applications/Python\ 2.7/Update\ Shell\ Profile.command
$ sh -l
$ echo $PATH
/Library/Frameworks/Python.framework/Versions/2.7/bin:/Library/Frameworks/Python.framework/Versions/3.2/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
$ which python3
/Library/Frameworks/Python.framework/Versions/3.2/bin/python3
$ which python
/Library/Frameworks/Python.framework/Versions/2.7/bin/python
$ cd /Library/Frameworks/Python.framework/Versions/2.7/bin
$ ls -l
total 288
-rwxrwxr-x  1 root  admin    150 Jul  3  2010 2to3*
lrwxr-x---  1 root  admin      7 Nov  8 23:14 idle@ -> idle2.7
-rwxrwxr-x  1 root  admin    138 Jul  3  2010 idle2.7*
lrwxr-x---  1 root  admin      8 Nov  8 23:14 pydoc@ -> pydoc2.7
-rwxrwxr-x  1 root  admin    123 Jul  3  2010 pydoc2.7*
lrwxr-x---  1 root  admin      9 Nov  8 23:14 python@ -> python2.7
lrwxr-x---  1 root  admin     16 Nov  8 23:14 python-config@ -> python2.7-config
-rwxrwxr-x  1 root  admin  33764 Jul  3  2010 python2.7*
-rwxrwxr-x  1 root  admin   1663 Jul  3  2010 python2.7-config*
lrwxr-x---  1 root  admin     10 Nov  8 23:14 pythonw@ -> pythonw2.7
-rwxrwxr-x  1 root  admin  33764 Jul  3  2010 pythonw2.7*
lrwxr-x---  1 root  admin     11 Nov  8 23:14 smtpd.py@ -> smtpd2.7.py
-rwxrwxr-x  1 root  admin  18272 Jul  3  2010 smtpd2.7.py*

"Şu anda Python 2 sürümleri için ayrılmıştır" ile ilgili olarak, bunun için bir bağlantınız var mı?
Joker Karakter

Python 3.4 ve python 3.7 varsa, terminalden python3 yazdığımda, 3.7 değil python 3.4 çalıştırıyor, bunu nasıl düzeltebilirim?
Ysh


20

Doğru olanı yap, doğru olanı yap!

---> Sıfır Terminalinizi açın,

- İlk girdi python -V, muhtemelen şunu gösterir:

Python 2.7.10

-İkinci girdi python3 -V, muhtemelen şunu gösterir:

Python 3.7.2

--Üçüncü olarak girdi where pythonveya which python, muhtemelen şunu gösterir:

/usr/bin/python

--- Dördüncü olarak girdi where python3veya which python3, muhtemelen şunu gösterir:

/usr/local/bin/python3

Beşinci olarak aşağıdaki satırı, ~/.profile file or ~/.bash_profileBash'in ~/.zshrcaltında veya zsh'nin altındaki PATH ortam değişkeni dosyanızın altına ekleyin .

alias python='/usr/local/bin/python3'

VEYA

alias python=python3

source ~/.bash_profileBash altında veya source ~/.zshrczsh altında altıncı olarak girdi .

--Yedinci olarak Terminalden çıkın.

--- Sekizinci olarak terminalinizi açın ve giriş yapın python -V, muhtemelen şunu gösterir:

Python 3.7.2

Başarıyla denedim.

Diğerleri, ~/.bash_profileunder zsh bu değil ~/.bash_profile.

Bunun yerine ~/.profile(veya ~/.bash_file) aracılığıyla zsh altındaki PATH ortam değişkeni ~/.zshrc.

Size yardım edin!


16

Yolunuzdaki sistem Python'un önüne koyarak "varsayılan" Python'u değiştirin, örneğin:

export PATH=/usr/local/bin:$PATH

Benim varsayımım, bunu yaparak Mac'te bir şeyi bozabileceğinizdir. "Python" takma adını kullanan birçok program ve komut dosyası olduğundan. Birdenbire, PATH'deki öncelik değişikliği nedeniyle, Python2'yi değil Python3'ü göstermeye başlarlar - bu bir şeyi bozabilir. Potansiyel olarak tüm işletim sistemi ... bu benim varsayımım ve test edilmedi.
Aivoric

3
Herhangi bir sistem yazılımı Python tarafından sağlanan sisteme giden tam yolu kullanıyor olacaktır.
Adam Vandenberg

2

Hızlı bir Google aramasına göre, bu güncelleme yalnızca açtığınız mevcut kabuk için geçerlidir. Mac ve linux bunun gibi şeylerin çakışması için yeterince benzer olduğu için muhtemelen python3 yazarak düzeltilebilir. Google arama sonucuna bağlantı.

Ayrıca, ninjagecko'nun belirttiği gibi, çoğu program henüz 3.x'e güncellenmedi, bu nedenle varsayılan python'un 3.x olarak kullanılması, uygulamalarda kullanılan birçok python komut dosyasını bozacaktır.


2

OS X 10.7.5 ve Python 3.4.2 kullanıyorum. Eğer yazarsanız python3ve çalıştırmak istediğiniz şeyi python 3 kullanarak çalıştırır pyhton3 test001.py. Örneğin . Bu, test001 adında yaptığım bir test programını çalıştırdı. Umarım bu yardımcı olur.


5
Stack Overflow'a hoş geldiniz! Görünüşe göre cevabınız sorulan soruya gerçek bir cevap değil. Düzeltmek istiyorsanız, lütfen yardım için stackoverflow.com/help/how-to-answer adresine bakın .
Diğerleri

HOURS'u Mac'imde python3'ü çalıştırmaya harcadım - eski 'python' yerine 'python3' yazmak hile yaptı.
YCode

1

Şu yöne rotayı ayarla:

Bilgisayarım -> Özellikler -> Gelişmiş -> Ortam Değişkenleri -> Sistem Değişkenleri

Yol değişkenine zaten python 2.7 eklediğinizi ve varsayılan yolu python 3.x olarak değiştirmek istediğinizi varsayalım.

daha sonra python2.7 yolundan önce python3.5.x klasörünün yolunu ekleyin.

open cmd: "python --version" yazın

python sürümü python 3.5.x olarak değiştirilecek


3
Bu Windows.
charles ross

Terminaller / cmds / konsollar içeren bazı IDE'ler, ortam değişkenlerini yayar. Gömülü terminalin içindeki değişiklikleri almak için IDE'yi yeniden başlatın.
UselesssCat

0
sudo mv /usr/bin/python /usr/bin/python2
sudo ln -s $(which python3) /usr/bin/python

Bu komut dosyalarını bozacaktır, ancak tam olarak python'u değiştirmenin yolu budur. Ayrıca python, 2.x olduğunu varsaymamak için komut dosyalarını yeniden yazmalısınız. Bu, aradığınız yerden systemveya aradığınız yerden bağımsız olarak çalışacaktır exec.


0

Kısaca: Ortam Değişkenlerindeki yolu değiştirin!

Pencereler için:

  • Gelişmiş System Settings > Advance (tab). Altta bulacaksın'Environment Variables'

  • Çift tıklayın Path. Python kurulumlarından birine giden yolu göreceksiniz, bunu istediğiniz sürümün yoluna değiştirin.


0

Kitaplıkların bulunduğu python3'ün yürütme yolunu kontrol edin

$ which python3
/usr/local/bin/python3  some OS might have /usr/bin/python3

bash_profile dosyasını açın ve bir takma ad ekleyin

vi ~/.bash_profile  
alias python='/usr/local/bin/python3' or alias python='/usr/bin/python3'

Değişikliklerin etkili olması için bash_profile'ı yeniden yükleyin

source ~/.bash_profile

Python komutunu çalıştırın ve python3 ile yüklenip yüklenmediğini kontrol edin

$ python --version
Python 3.6.5

0

Aşağıdaki komutları kullanarak geçici olarak değişiklik yapabilir veya farklı sürümler arasında geçiş yapabilirsiniz:

set path=C:\Users\Shaina\AppData\Local\Programs\Python\Python35-32;%PATH%
python --version

görüntü açıklamasını buraya girin

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.