mac osx'te python konumu


99

Osx'teki python ile biraz kafam karıştı. Dizüstü bilgisayarın önceki sahibinin macport kullanarak macpython kurup kurmadığını bilmiyorum. Ve osx'in yerleşik bir python sürümüne sahip olduğunu hatırladım. Kullanmayı denedim type -a pythonve sonuç geri döndü

python is /usr/bin/python
python is /usr/local/bin/python

Ancak bu yerlerde her iki python da çalıştırmak bana verir [GCC 4.2.1 (Apple Inc. build 5646)] on darwin. İkisi de sağlanan aynı yerleşik python mac'a mı başvuruyor?

Ayrıca macpython bir yüklemenin

     A MacPython 2.5 folder in your Applications folder. In here you
 find IDLE, the development environment that is a standard part of
 official Python distributions...

Baktım Applicationsve bir MacPortklasör python2.6ve içinde bahsedilen şeyler var. Ama IDLE çalıştırdığımda yukarıdaki ile aynı mesajı buluyorum.

Hmm biraz kafam karıştı. Hangisi hangisi?

Yanıtlar:


66

[GCC 4.2.1 (Apple Inc. build 5646)]Python'un kendisinin sürümü değil, Python (lar) ın inşa edildiği GCC sürümüdür. Bu bilgi önceki satırda olmalıdır. Örneğin:

# Apple-supplied Python 2.6 in OS X 10.6
$ /usr/bin/python
Python 2.6.1 (r261:67515, Jun 24 2010, 21:47:49) 
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 

# python.org Python 2.7.2 (also built with newer gcc)
$ /usr/local/bin/python
Python 2.7.2 (v2.7.2:8527427914a2, Jun 11 2011, 15:22:34) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

/usr/binBirisi istemeyerek orada bir şeyler değiştirmediği sürece, içindeki öğeler her zaman OS X'te Apple tarafından sağlanan dosyalara bağlanmalı veya bunlara bağlantı vermelidir. Tam olarak nereye /usr/local/bin/pythonbağlı olduğunu görmek için:

$ ls -l /usr/local/bin/python
lrwxr-xr-x  1 root  wheel  68 Jul  5 10:05 /usr/local/bin/python@ -> ../../../Library/Frameworks/Python.framework/Versions/2.7/bin/python

Bu durumda, bu bir python.org kurulu Python örneği için tipiktir veya kaynaktan oluşturulmuş bir örnek olabilir.


58

Bulmanın en kolay yolunu buldum, kullanabilirsiniz

which python

şöyle bir şey gösterecek:

/usr/bin/python


3
Bu, Python'un hangi dağıtımını (kimin yaptığını) yanıtlamaz.
Scott Prive

54

Mac OS X'te, içindeki Python çerçevesindedir /System/Library/Frameworks/Python.framework/Resources.

Tam yol:

/System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python

Btw, belirli bir ikiliyi nerede bulabileceğinizi bulmak kolaydır: which Pythonsize Python ikilisinin yolunu gösterecektir (muhtemelen yukarıda yazdığımla aynıdır).


evet bunu biliyordum. Sadece kafam karıştı - yorumlayıcıyı / usr / local / bin / üzerinde çalıştırdım ve sys.executable'ı yazdırdım. / Usr / bin / python diyor. ancak belgeleri okudum ve elma tarafından sağlanan / usr / bin / içinde ve macpython'un "Python çalıştırılabilirine bir sembolik bağ / usr / local / bin /" içine yerleştirildiğini söylüyor.
goh

Pekala, mantıklı: python çalıştırılabilir dosyasını kendiniz derleyip / Users / John / Downloads / konumuna taşıdığınızda, size / Users / John / Downloads / python konumuna yerleştirildiğini gösterecektir. Aynı sistem üzerinde birden çok çalıştırılabilir dosyayı yan yana çalıştırabilirsiniz. Python.framework'daki AFAIK, birincil olanıdır, bu yüzden ona güvenmelisiniz.
elslooo

28
Aslında, Mac OS X'te Apple tarafından sağlanan Python'lar burada /System/Library/Frameworks/Python.framework. Herhangi bir şey /Library/Frameworks/Python.frameworküçüncü taraf bir kurulumdan, genellikle bir python.org (veya başka bir dağıtıcı) yükleyiciden gelir veya kaynaktan Python'un varsayılan bir çerçeve derlemesi yaptıysanız.
Ned Deily

1
Ben çalıştırdığınızda çıkış gösterileri beni neden olduğunu - Ben bir sembolik olduğunu görmüyor musunuz? (Bu soru AskDifferent'te soruldu )/System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7ps aux/System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python
Zitrax

@Tim Teşekkürler. /Library/Frameworks/Python.framework/Versions/ adresine gittiğimde, 2.7'yi görmüyorum (yüklediğim şey buydu), ancak tıklandığında bana "İşlem 'Mevcut' için orijinal öğe bulunamadığından rekabet edilemez. "
Pyderman

45

Bu , temel kabukta Python ile ilgili tüm sorunlarınızı çözecektir :

Bir Mac'iniz varsa ve çoğumuzun yaptığı gibi python3 yüklediyseniz :) (brew install - ofc ile)

dosyanızın bulunduğu yer:

/usr/local/Cellar/python/3.6.4_4/bin/python3

Nereden biliyorsunuz? -> bunu her temel kabuk Çalıştırmasında çalıştırabilirsiniz:

which python3

Almalısın:

/usr/local/bin/python3

Şimdi bu sembolik bir bağlantı, nasıl bileceksiniz? Çalıştırmak:

ls -al /usr/local/bin/python3 

ve alacaksın:

/usr/local/bin/python3 -> /usr/local/Cellar/python/3.6.4_4/bin/python3

bu senin

/usr/local/bin/python3 

aslında şunlara işaret ediyor:

/usr/local/Cellar/python/3.6.4_4/bin/python3

Eğer herhangi bir nedenle

/usr/local/bin/python3 

istediğiniz yere işaret etmiyor, bizim durumumuzda:

/usr/local/Cellar/python/3.6.4_4/bin/python3

sadece yedekleyin:

cp /usr/local/bin/python3{,.orig} 

ve koş:

rm -rf /usr/local/bin/python3

şimdi yeni bir sembolik bağlantı oluşturun:

ln -s /usr/local/Cellar/python/3.6.4_4/bin/python3 /usr/local/bin/python3 

ve şimdi senin

/usr/local/bin/python3

işaret ediyor

/usr/local/Cellar/python/3.6.4_4/bin/python3 

Şunları çalıştırarak kontrol edin:

ls -al /usr/local/bin/python3

1
sonunda .... teşekkür ederim !!!!! sanal bir ortamda bu konuyla karşılaşıyordum. Çözümler de işe yarıyor. sadece doğru python konumunu kullanmanız gerekiyor
Paul Jurczyk

1
Bu aynı zamanda benim için temel kabuğun kendisi için faydalı bir referans - birçok artımlı adım ve çok iyi açıklanmış :)
cellepo

6

High Sierra'da

which python

varsayılan python'u gösterir, ancak python.org'dan en son sürümü indirip yüklediyseniz bunu şu şekilde bulabilirsiniz:

which python3.6

benim makinemde gösterilenler

/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6

Bu, Python'un hangi dağıtımını (kimin yaptığını) yanıtlamaz.
Scott Prive


3

Birkaç benzer tartışmayı kontrol ettim ve tüm python2 / python3 yapılarını bulmanın en iyi yolunu buldum:

which -a python python3

2

burada buldum: /Library/Frameworks/Python.framework/Versions/3.6/bin


1

which python3 basitçe, yorumlayıcının yerleştiği bir yolla sonuçlanır.


0

.py dosyasında aşağıdaki kodu çalıştırın:

import sys

print(sys.version)
print(sys.executable)

-1

Linux / macOS'ta bir şeyler bulmak için bir aşçı tarifim var

Önce locate db'yi güncelleyin ve ardından bir

locate WHATiWANTtoSEARCH | less

aradığınızı bulmak için yap / bul.

macOS'ta locate db'nizi güncellemek için şunu yapın:

sudo /usr/libexec/locate.updatedb

bazen biraz zaman alır. Bu yardımcı olur umarım :)


-1

Bunu interaktif terminalinizde çalıştırın

import os
os.path

Size python'un kurulu olduğu klasörü verecektir

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.