localização do python no mac osx

94

Estou um pouco confuso com o python no osx. Não sei se o dono anterior do laptop instalou macpython usando macport. E me lembrei que osx tem uma versão embutida de python. Tentei usar type -a pythone o resultado retornou

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

No entanto, executando ambos python nesses locais, dê-me [GCC 4.2.1 (Apple Inc. build 5646)] on darwin. Ambos se referem ao mesmo python mac integrado fornecido?

Também li que a instalação de macpython one iria

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

Eu olhei Applicationse havia uma MacPortpasta com python2.6as coisas mencionadas nela. Mas executando o IDLE, encontro a mesma mensagem acima.

Hmm, estou um pouco confuso. Qual e qual?

goh
fonte

Respostas:

63

[GCC 4.2.1 (Apple Inc. build 5646)]é a versão do GCC com a qual os Python (s) foram construídos, não a versão do próprio Python. Essa informação deve estar na linha anterior. Por exemplo:

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

Os itens em /usr/bindevem sempre ser ou ter links para arquivos fornecidos pela Apple no OS X, a menos que alguém tenha alterado as coisas inadvertidamente. Para ver exatamente onde o /usr/local/bin/pythonestá vinculado:

$ 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

Nesse caso, isso é típico para uma instância do Python instalada em python.org ou pode ser construída a partir da fonte.

Ned Deily
fonte
53

No Mac OS X, está na estrutura do Python em /System/Library/Frameworks/Python.framework/Resources.

O caminho completo é:

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

A propósito, é fácil descobrir onde você pode encontrar um binário específico: which Pythonirá mostrar o caminho do seu binário Python (que provavelmente é o mesmo que postei acima).

elslooo
fonte
sim, eu sabia disso. É que estou confuso - executei o interpretador em / usr / local / bin / e imprimi sys.executable. Diz / usr / bin / python. mas eu li a documentação e diz que o apple-fornecido estava em / usr / bin / e o macpython "Um link simbólico para o executável Python está colocado em / usr / local / bin /".
goh
Bem, faz sentido: quando você compila o executável python por conta própria e o move para, digamos, / Users / John / Downloads /, ele mostrará que está localizado em / Users / John / Downloads / python. Você pode executar vários executáveis ​​lado a lado no mesmo sistema. O AFAIK em Python.framework é o principal, então você deve confiar nele.
elslooo
28
Na verdade, os Pythons fornecidos pela Apple no Mac OS X estão na moda /System/Library/Frameworks/Python.framework. Qualquer coisa /Library/Frameworks/Python.frameworkvem de uma instalação de terceiros, geralmente um instalador python.org (ou outro distribuidor) ou se você fez uma construção de estrutura padrão do Python a partir do código-fonte.
Ned Deily
1
Quando eu executo /System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7a ps auxsaída mostra /System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python, por que isso - não vejo que seja um link simbólico? ( Fiz esta pergunta em AskDifferent )
Zitrax
Obrigado @Tim. Quando vou para /Library/Frameworks/Python.framework/Versions/, não vejo 2.7 (que é o que instalei), mas um arquivo de alias chamado 'Atual', que, ao ser clicado, me dá o erro "A operação não pode ser competido porque o item original para 'Atual' não pode ser encontrado. "
Pyderman de
53

Achei a maneira mais fácil de localizá-lo, você pode usar

which python

vai mostrar algo assim:

/usr/bin/python

Gavin
fonte
3
Isso não responde qual distribuição de Python (quem a fez).
Scott Prive
42

Este resolverá todos os seus problemas ao lidar com Python e Mac:

Se você tem um Mac e instalou o python3 como a maioria de nós faz :) (com brew install - ofc)

seu arquivo está localizado em:

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

Como você sabe? Corre:

which python3

Voce deveria pegar:

/usr/local/bin/python3

Agora esse é um link simbólico, como você sabe? Corre:

ls -al /usr/local/bin/python3 

e você obterá:

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

o que significa que seu

/usr/local/bin/python3 

está na verdade apontando para:

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

Se, por algum motivo, o seu

/usr/local/bin/python3 

não está apontando para o lugar que você deseja, que no nosso caso:

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

apenas faça backup:

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

e corra:

rm -rf /usr/local/bin/python3

agora crie um novo link simbólico:

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

e agora o seu

/usr/local/bin/python3

está apontando para

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

Verifique executando:

ls -al /usr/local/bin/python3
Kohn1001
fonte
1
finalmente .... obrigado !!!!! Eu estava enfrentando esse problema em um ambiente virtual. Soluções também funcionam. só precisa usar o local correto do python
Paul Jurczyk
6

Em High Sierra

which python

mostra o python padrão, mas se você baixou e instalou a versão mais recente de python.org, poderá encontrá-lo por:

which python3.6

que na minha máquina mostra

/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6
Daniel Nuriyev
fonte
Isso não responde qual distribuição de Python (quem a fez).
Scott Prive
5

instalado com 'brew install python3', encontrei-o aqui insira a descrição da imagem aqui

Georgy gobozov
fonte
3

Verifiquei algumas discussões semelhantes e descobri que a melhor maneira de localizar todas as compilações python2 / python3 é:

which -a python python3
Yongzhi.C
fonte
2

eu encontrei aqui: /Library/Frameworks/Python.framework/Versions/3.6/bin

Por sorte
fonte
1

which python3 simplesmente resulta em um caminho no qual o intérprete se estabelece.

snr
fonte
0

Execute isso em seu terminal interativo

import os
os.path

Ele lhe dará a pasta onde o python está instalado

MaPY
fonte
0

execute o seguinte código em um arquivo .py:

import sys

print(sys.version)
print(sys.executable)
HanumanDev
fonte
-1

Eu tenho uma receita culinária para encontrar coisas em linux / macos

Primeiro atualize o banco de dados de localização e depois faça um

locate WHATiWANTtoSEARCH | less

faça um / find para encontrar o que procura.

para atualizar seu banco de dados de localização em macos, faça o seguinte:

sudo /usr/libexec/locate.updatedb

às vezes demora um pouco. Espero que isto ajude :)

Hassek
fonte