OS X'de Python'un varsayılan sürümünü 3.x olarak nasıl ayarlayabilirim?


329

Mountain Lion çalıştırıyorum ve temel varsayılan Python sürümü 2.7. Python 3.3'ü indirdim ve varsayılan olarak ayarlamak istiyorum.

Şu anda:

$ python
    version 2.7.5
$ python3.3
    version 3.3

Her çalıştırdığımda $ python3.3'ü açacak şekilde nasıl ayarlayabilirim ?



İle python sürümünü yönetebilirsiniz pyenv.
Shin Kim

Yanıtlar:


579

Varsayılan python yürütülebilir dosyasının sistem genelinde sürümünün değiştirilmesi, python2'ye bağlı bazı uygulamaları bozabilir.

Ancak, komutları çoğu kabukta takma adlandırabilirsiniz, çünkü macOS'ta varsayılan kabuklar (10.14 ve altı bash; 10.15'te zsh) benzer bir sözdizimini paylaşır. Sen = 'python3' Gözlerinde farklı takma python koyabilirsiniz ~/.profileve sonra kaynak ~/.profileGözlerinde farklı ~/.bash_profileve / veya ~/.zsh_profileçizgi gibi olan:

[ -e ~/.profile ] && . ~/.profile

Bu şekilde takma adınız mermiler arasında çalışacaktır.

Bununla, pythonkomut şimdi çağırıyor python3. Zaman zaman "orijinal" python'u çağırmak istiyorsanız ( python2'ye atıfta bulunur ) command python, takma adı dokunmadan bırakacak ve tüm kabuklarda çalışacak şekilde kullanabilirsiniz .

Tercümanları daha sık başlatırsanız (yaparım) , her zaman eklemek için daha fazla takma ad oluşturabilirsiniz, yani:

alias 2='python2'
alias 3='python3'

İpucu: Komut dosyaları için, aşağıdaki gibi bir shebang kullanmak yerine:

#!/usr/bin/env python

kullanın:

#!/usr/bin/env python3

Bu şekilde, sistem python yürütülebilir dosyalarını çalıştırmak için python3'ü kullanır .


2
Bu ~ / .bash_aliases yerine ~ / .bash_profile dosyasına konulmamalı mı?
UnsettlingTrend

4
Osx el capitan'daki terminalime koymak alias python=python3ve sonra pythonbenim için çalışmadı. Hem ~ / .bash_aliases hem de ~ / .bash_profile kaydedilmeye çalışıldı.
Haymaker87

43
@ Haymaker87 source ~/.bash_profilesonra düzenleme ~/.bash_profiledosyasını çalıştırın .
Wei Lu

15
Aynı şeyi pip için de yapabilirsiniz:alias pip='pip3.6'
stephen

sudo ile çalışırken sorun yaratacak @ surfer190, değil mi?
Santosh Kumar

141

Sembolik bağlantı ile çözebilirsiniz.

unlink /usr/local/bin/python
ln -s /usr/local/bin/python3.3 /usr/local/bin/python

24
Bu doğru cevaptır (takma adlar güzeldir, ancak yalnızca nereden arayabileceğinizi sınırlayan bash tarafından erişilebilir). Ancak, ben kullanmak istiyorsunuz unlinkyerine rm(üzerine yanlışlıkla bir bölü eklerseniz sembolik kaldırmak için rmbazı kötü sonuçları olabilir). Alternatif olarak, ln -s -f ...geçerli symlink'in üzerine yazılması gereken işlemleri yapabilirsiniz .
Chad Befus

2
@ChadBefus Cevabınız için teşekkür ederim. Senin görüşüne katılıyorum. unlink rm'den daha güvenlidir.
Shin Kim

3
O bekliyoruz komut dosyaları için herhangi sonuçları var mı pythonolmak python2.7?
Anton Tarasenko

19
macOS:unlink: /usr/bin/python: Operation not permitted
MarksCode

4
@MarksCode sadece ikinci orijinal satırı (yani ln -s... ile /local/ ) çalıştırmayı deneyin .
EliadL

42

~ / .Bash_profile dosyasını açın .

vi ~/.bash_profile

Sonra takma adı aşağıdaki gibi yerleştirin:

alias python='python3'

Şimdi dosyayı kaydedin ve sonra ~ / .bash_profile dosyasını çalıştırın .

source ~/.bash_profile

Tebrikler !!! Şimdi python yazarak python3'ü kullanabilirsiniz .

python --version

Python 3.7.3


Aynı sorunun pip için de geçerli olduğunu fark ettiyseniz (yani pip -version hala 2.7.x) pip3 için aynı adımları uygulamanız gerekir. vi ~ / .bash_profile, diğer ad pip = 'pip3', kaynak ~ / .bash_profile, pip --version
SnellyBigoda

source ~/.bash_profileTerminalimi her açtığımda gerçekten ihtiyacım var mı? Terminali kapatıp açtığımda python2'ye geri dönüyor.
Ricky Aguilar

21

Terminal türüne gidin:

alias python=python3.x

Bu, varsayılan python'u python3.x olarak ayarlar.


1
Bu benim için çalıştı ama "takma ad python = python3" kullanarak
Discant

Bu geçici olarak söz konusu terminal örneği için python sürümünü ayarlayacaktır.
Ashwin R

12

Aşağıdakiler benim için çalıştı

cd /usr/local/bin
mv python python.old
ln -s python3 python

10

Bu oyuna biraz geç kaldım, ancak kendim için bu sorunla karşılaştığımdan beri güncel bir cevap yayınlamam gerektiğini düşündüm. Bunun yalnızca Mac tabanlı bir kurulum için geçerli olacağını lütfen unutmayın (Windows veya herhangi bir Linux lezzeti ile denemedim).

Bu çalışmanın en basit yolu Python'u Brew üzerinden kurmaktır . Eğer demlemek yoksa, önce bunu yapmanız gerekir. Kurulduktan sonra terminalde aşağıdakileri yapın:

brew install python

Bu Python 3'ü yükleyecektir. Yüklendikten sonra şunu çalıştırın:

ls -l /usr/local/bin/python*

Demlemek tarafından oluşturulan tüm bağlantıları Python kurulumuna göreceksiniz. Bunun gibi bir şey olacak:

lrwxr-xr-x  1 username  admin  36 Oct  1 13:35 /usr/local/bin/python3@ -> ../Cellar/python/3.7.4_1/bin/python3
lrwxr-xr-x  1 username  admin  43 Oct  1 13:35 /usr/local/bin/python3-config@ -> ../Cellar/python/3.7.4_1/bin/python3-config
lrwxr-xr-x  1 username  admin  38 Oct  1 13:35 /usr/local/bin/python3.7@ -> ../Cellar/python/3.7.4_1/bin/python3.7
lrwxr-xr-x  1 username  admin  45 Oct  1 13:35 /usr/local/bin/python3.7-config@ -> ../Cellar/python/3.7.4_1/bin/python3.7-config
lrwxr-xr-x  1 username  admin  39 Oct  1 13:35 /usr/local/bin/python3.7m@ -> ../Cellar/python/3.7.4_1/bin/python3.7m
lrwxr-xr-x  1 username  admin  46 Oct  1 13:35 /usr/local/bin/python3.7m-config@ -> ../Cellar/python/3.7.4_1/bin/python3.7m-config

Bu örnekteki ilk satır, python3sembolik bağ gösterir . Varsayılan pythonsymlink olarak ayarlamak için aşağıdakileri çalıştırın:

ln -s -f /usr/local/bin/python3 /usr/local/bin/python

Ayarlandıktan sonra şunları yapabilirsiniz:

which python

ve göstermelidir:

/usr/local/bin/python

Mevcut terminal kabuğunuzu, o kabuktaki yeni symlink'i kullanabilmesi için yeniden yüklemeniz gerekecektir, ancak yeni açılan tüm kabuk oturumları otomatik olarak kullanacaktır (gerekir). Bunu test etmek için yeni bir terminal kabuğu açın ve aşağıdakileri çalıştırın:

python --version

Harika çalışıyor ( Referans )
Nepo Znat


8

Bu benim için çalıştı. Takma ad ekledim ve terminalimi yeniden başlattım :

alias python=/usr/local/bin/python3

6

Buraya inen insanların çoğunun iterm ya da her neyse ZSH kullandığına inanıyorum ve bu sizi bu cevaba getiriyor .

Bunun ~/.zshrcyerine komutlarınızı eklemeniz / değiştirmeniz gerekir .


3

Bunun OS X'te mevcut olup olmadığından emin değilim, ancak linux'da modulekomutu kullanacağım . Buraya bakın .

Modülü doğru şekilde ayarlayın, ardından rc dosyanıza böyle bir şey ekleyin (örn. ~ / .Bashrc):

module load python3.3

Bu, sistem varsayılanlarını etkilemeden oturum açtığınızda yollarınızın gerektiği gibi değiştirilmesini sağlar.


3

Python yüklediğinizde ~ / .bash_profile dosyasına ihracat yolu ifadeleri koyar düşünüyorum. Yani artık Python 2'yi kullanmak istemiyorsanız, o ifadeyi oradan kaldırabilirsiniz. Yukarıda belirtildiği gibi takma ad da bunu yapmanın harika bir yoludur.

~ / .Bash_profile - vim ./.bash_profile kaynağından referansı nasıl kaldıracağınız - referansı kaldırın (AKA şuna benzer: export PATH = "/ Users / bla / anaconda: $ PATH") - kaydet ve çık - kaynak ./ .bash_profile değişiklikleri kaydetmek için


Bu olmaz
co2f2e

3
$ sudo ln -s -f $(which python3) $(which python)

yapılır.



1

A virtualenvwrapperkullanıyorsanız which virtualenvwrapper.sh, onu kullanarak bulabilir , ardından vimveya başka bir düzenleyici kullanarak açıp aşağıdakileri değiştirebilirsiniz

# Locate the global Python where virtualenvwrapper is installed.
if [ "${VIRTUALENVWRAPPER_PYTHON:-}" = "" ]
then
    VIRTUALENVWRAPPER_PYTHON="$(command \which python)"
fi

Satırı olarak VIRTUALENVWRAPPER_PYTHON="$(command \which python)"değiştirin VIRTUALENVWRAPPER_PYTHON="$(command \which python3)".


1

Benim için çözüm, PyCharm'ı kullanmak ve varsayılan python sürümünü çalışmak için gerekli olana ayarlamaktı.

PyCharm'ı yükleyin ve yeni proje için tercihler ==> dosyasına gidin, ardından projeleriniz için istediğiniz yorumlayıcıyı seçin, bu durumda python 3.3



1

Macport kullanıyorsanız, bunu yapmanın daha kolay bir yolu vardır:

Çalıştırmak:

port install python37

kurulumdan sonra, varsayılanı ayarlayın:

sudo port select --set python python37

sudo port select --set python3 python37

cmd pencerenizi yeniden başlatın, bitti.


1

Şey ... Biraz eskidir. Ama yine de iyi bir cevabı hak ediyor.

Ve iyi olanı, Mac'teki Varsayılan Python'a Dokunmak İstemezsiniz.

İhtiyacınız olan herhangi bir Python sürümünü Homebrew veya her neyse yükleyin ve virtualenv'de kullanın. Virtualenv genellikle bok gibi bir şey olarak kabul edilir, ancak yine de, sistem genelinde (macOS'un bu tür eylemlerden kendini koruması muhtemeldir) veya kullanıcı çapında, bash çapında ... Sadece varsayılan Python'u unutun. Venv gibi oyun alanlarını kullanmak, işletim sisteminizin en çok, en çok minnettar olacağı şeydir.

Örneğin, birçok modern Linux dağıtımı kutudan çıkan Python2'den kurtularak sistemde sadece Python3'ü bırakıyor. Ama bağımlılık olarak python2 ile eski bir şey yüklemeye çalıştığınızda ... ne demek istediğimi anladığınızı umuyoruz. İyi bir geliştirici umursamaz. İyi geliştiriciler istedikleri python sürümü ile temiz oyun alanları yaratırlar.


0

Mac kullanıcılarının sadece terminalde aşağıdaki kodu çalıştırması gerekir

brew switch python 3.x.x

3.xx yeni python sürümü olmalıdır.

Bu, tüm sistem bağlantılarını güncelleyecektir.


0

Python to python3 takma adı önerileri, python sürümünü ayarlayan sanal ortamlarda sorunlara neden olur (örneğin: pyenv). Pyenv ile sürümü global olarak şu şekilde ayarlayabilirsiniz:

pyenv global 3.8.2

ve sonra belirli bir projede, içinde python sürümü olan bir .python sürümü dosyası oluşturabilirsiniz:

pyenv local 2.7.1

Bence bir sistemde birden fazla python sürümünü yönetmenin en iyi yolu budur.

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.