lokasi python di mac osx

94

Saya agak bingung dengan python di osx. Saya tidak tahu apakah pemilik laptop sebelumnya telah menginstal macpython menggunakan macport. Dan saya ingat bahwa osx memiliki versi python bawaan. Saya mencoba menggunakan type -a pythondan hasilnya kembali

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

Namun menjalankan kedua python di lokasi ini memberi saya [GCC 4.2.1 (Apple Inc. build 5646)] on darwin. Apakah keduanya mengacu pada mac python builtin yang sama yang disediakan?

Saya juga membaca bahwa menginstal macpython akan

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

Aku melihat Applications, dan ada MacPortfolder dengan python2.6dan hal-hal yang disebutkan di dalamnya. Tapi menjalankan IDLE, saya menemukan pesan yang sama seperti di atas.

Hmm saya agak bingung. Yang mana

goh
sumber

Jawaban:

63

[GCC 4.2.1 (Apple Inc. build 5646)]adalah versi GCC yang digunakan untuk membuat Python, bukan versi Python itu sendiri. Informasi itu harus ada di baris sebelumnya. Sebagai contoh:

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

Item di /usr/binharus selalu atau ditautkan ke file yang disediakan oleh Apple di OS X, kecuali ada orang yang secara tidak sengaja mengubah sesuatu di sana. Untuk melihat dengan tepat di mana /usr/local/bin/pythonditautkan ke:

$ 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

Dalam hal ini, hal itu biasa terjadi pada instance Python yang diinstal python.org atau bisa juga dibuat dari sumber.

Ned Deily
sumber
54

Saya menemukan cara termudah untuk menemukannya, Anda dapat menggunakan

which python

itu akan menunjukkan sesuatu seperti ini:

/usr/bin/python

Gavin
sumber
3
Ini tidak menjawab distribusi Python yang mana (siapa yang membuatnya).
Scott Prive
53

Di Mac OS X, ini dalam kerangka Python di /System/Library/Frameworks/Python.framework/Resources .

Jalur lengkapnya adalah:

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

Btw mudah untuk mengetahui di mana Anda dapat menemukan biner tertentu: which Pythonakan menunjukkan jalur biner Python Anda (yang mungkin sama seperti yang saya posting di atas).

elslooo
sumber
ya saya tahu itu. Hanya saja saya bingung - saya menjalankan interpreter di / usr / local / bin / dan mencetak sys.executable. Tercantum / usr / bin / python. tapi saya membaca dokumen dan dikatakan bahwa apel yang disediakan ada di / usr / bin / dan "Symlink ke Python yang dapat dieksekusi macpython ditempatkan di / usr / local / bin /".
goh
Nah, masuk akal: ketika Anda mengkompilasi sendiri python-executable dan memindahkannya ke, katakanlah / Users / John / Downloads /, itu akan menunjukkan kepada Anda itu ditempatkan di / Users / John / Downloads / python. Anda dapat menjalankan beberapa file yang dapat dieksekusi di samping satu sama lain pada sistem yang sama. AFAIK yang ada di Python. Frame adalah yang utama, jadi Anda harus mengandalkan yang itu.
elslooo
28
Sebenarnya, Pythons yang dipasok Apple di Mac OS X sudah masuk /System/Library/Frameworks/Python.framework. Apa pun yang masuk /Library/Frameworks/Python.frameworkberasal dari penginstalan pihak ketiga, biasanya penginstal python.org (atau distributor lain) atau jika Anda melakukan build kerangka default Python dari sumber.
Ned Deily
1
Ketika saya menjalankan /System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7dengan ps auxkeluaran menunjukkan saya /System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python, mengapa itu - saya tidak melihat bahwa itu sebuah symlink? (Ditanyakan pertanyaan ini di AskDifferent )
Zitrax
@Tim Terima kasih. Ketika saya pergi ke /Library/Frameworks/Python.framework/Versions/, saya tidak melihat 2.7 (yang telah saya instal), tetapi file alias bernama 'Saat Ini', yang, ketika diklik, memberi saya kesalahan "Operasi tidak dapat dikompetisikan karena item asli untuk 'Saat Ini' tidak dapat ditemukan. "
Pyderman
42

Yang ini akan menyelesaikan semua masalah Anda berurusan dengan Python dan Mac:

Jika Anda memiliki Mac dan Anda telah menginstal python3 seperti kebanyakan dari kita :) (dengan brew install - ofc)

file Anda berada di:

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

Bagaimana Anda tahu? Lari:

which python3

Anda harus mendapatkan:

/usr/local/bin/python3

Sekarang ini adalah tautan simbolis, bagaimana Anda tahu? Lari:

ls -al /usr/local/bin/python3 

dan Anda akan mendapatkan:

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

yang berarti milik Anda

/usr/local/bin/python3 

sebenarnya mengarah ke:

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

Jika, karena alasan tertentu, file

/usr/local/bin/python3 

tidak menunjuk ke tempat yang Anda inginkan, yang dalam kasus kami:

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

cadangkan saja:

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

dan lari:

rm -rf /usr/local/bin/python3

sekarang buat tautan simbolis baru:

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

dan sekarang milikmu

/usr/local/bin/python3

menunjuk ke

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

Lihat dengan menjalankan:

ls -al /usr/local/bin/python3
Kohn1001
sumber
1
akhirnya .... terima kasih !!!!! saya mengalami masalah ini di lingkungan virtual. Solusi juga berhasil. hanya perlu menggunakan lokasi python yang benar
Paul Jurczyk
6

Di High Sierra

which python

menampilkan python default tetapi jika Anda mengunduh dan menginstal versi terbaru dari python.org Anda dapat menemukannya dengan:

which python3.6

yang ditunjukkan mesin saya

/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6
Daniel Nuriyev
sumber
Ini tidak menjawab distribusi Python yang mana (siapa yang membuatnya).
Scott Prive
5

diinstal dengan 'brew install python3', temukan di sini masukkan deskripsi gambar di sini

Georgy Gobozov
sumber
3

Saya memeriksa beberapa diskusi serupa dan menemukan cara terbaik untuk menemukan semua build python2 / python3 adalah:

which -a python python3
Yongzhi.C
sumber
2

saya menemukannya di sini: /Library/Frameworks/Python.framework/Versions/3.6/bin

Beruntung
sumber
1

which python3 hanya menghasilkan jalur di mana penerjemah menetap.

snr
sumber
0

Jalankan ini di terminal interaktif Anda

import os
os.path

Ini akan memberi Anda folder tempat python diinstal

MaPY
sumber
0

jalankan kode berikut dalam file .py:

import sys

print(sys.version)
print(sys.executable)
hanumanDev
sumber
-1

Saya punya resep masak untuk menemukan sesuatu di linux / macos

Pertama perbarui db cari lalu lakukan a

locate WHATiWANTtoSEARCH | less

lakukan a / find untuk menemukan apa yang Anda cari.

untuk memperbarui lokasi db Anda di macos lakukan ini:

sudo /usr/libexec/locate.updatedb

terkadang butuh waktu. Semoga ini membantu :)

Hassek
sumber