ubicación de python en mac osx

95

Estoy un poco confundido con Python en osx. No sé si el propietario anterior de la computadora portátil instaló macpython usando macport. Y recordé que osx tiene una versión incorporada de python. Intenté usar type -a pythony el resultado regresó.

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

Sin embargo, ejecutar tanto Python en estas ubicaciones me da [GCC 4.2.1 (Apple Inc. build 5646)] on darwin. ¿Ambos se refieren al mismo mac Python incorporado proporcionado?

También leí que instalar macpython uno

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

Miré Applications, y hay una MacPortcarpeta con python2.6las cosas mencionadas en ella. Pero al ejecutar IDLE, encuentro el mismo mensaje que el anterior.

Hmm, estoy un poco confundido. ¿Cual es cual?

goh
fuente

Respuestas:

63

[GCC 4.2.1 (Apple Inc. build 5646)]es la versión de GCC con la que se crearon los Python, no la versión de Python en sí. Esa información debe estar en la línea anterior. Por ejemplo:

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

Los elementos /usr/binincluidos siempre deben estar vinculados a archivos proporcionados por Apple en OS X, a menos que alguien haya cambiado las cosas de manera imprudente. Para ver exactamente a dónde /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

En este caso, eso es típico para una instancia de Python instalada en python.org o podría ser una construida desde la fuente.

Ned Deily
fuente
54

Encontré la forma más fácil de localizarlo, puedes usar

which python

mostrará algo como esto:

/usr/bin/python

Gavin
fuente
3
Esto no responde qué distribución de Python (quién la hizo).
Scott Prive
53

En Mac OS X, está en el marco de Python en /System/Library/Frameworks/Python.framework/Resources .

La ruta completa es:

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

Por cierto, es fácil averiguar dónde puede encontrar un binario específico: which Pythonle mostrará la ruta de su binario de Python (que probablemente sea el mismo que publiqué anteriormente).

elslooo
fuente
sí, lo sabía. Es solo que estoy confundido: ejecuté el intérprete en / usr / local / bin / e imprimí sys.executable. Dice / usr / bin / python. pero leí los documentos y dice que el archivo proporcionado por Apple estaba en / usr / bin / y el "Un enlace simbólico al ejecutable de Python está ubicado en / usr / local / bin /" de macpython.
goh
Bueno, tiene sentido: cuando compila el ejecutable de python usted mismo y lo mueve a, digamos / Users / John / Downloads /, le mostrará que está ubicado en / Users / John / Downloads / python. Puede ejecutar varios ejecutables uno al lado del otro en el mismo sistema. AFAIK, el de Python.framework es el principal, por lo que debes confiar en ese.
elslooo
28
En realidad, los Pythons suministrados por Apple en Mac OS X están disponibles /System/Library/Frameworks/Python.framework. Todo /Library/Frameworks/Python.frameworklo que ingrese proviene de una instalación de terceros, generalmente un instalador de python.org (u otro distribuidor) o si realizó una compilación de marco predeterminada de Python desde la fuente.
Ned Deily
1
Cuando ejecuto, /System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7la ps auxsalida me muestra /System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python, ¿por qué? No veo que sea un enlace simbólico. ( Hizo esta pregunta en AskDifferent )
Zitrax
@Tim Gracias. Cuando voy a /Library/Frameworks/Python.framework/Versions/, no veo 2.7 (que es lo que tengo instalado), sino un archivo de alias llamado 'Actual', que, al hacer clic, me da el error "La operación no se puede competir porque no se puede encontrar el elemento original de 'Actual'. "
Pyderman
42

Este resolverá todos sus problemas relacionados con Python y Mac:

Si tiene una Mac y ha instalado python3 como la mayoría de nosotros lo hacemos :) (con brew install - ofc)

su archivo se encuentra en:

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

¿Cómo lo sabes? Correr:

which python3

Deberías conseguir:

/usr/local/bin/python3

Ahora bien, este es un enlace simbólico, ¿cómo lo sabes? Correr:

ls -al /usr/local/bin/python3 

y obtendrás:

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

lo que significa que tu

/usr/local/bin/python3 

en realidad apunta a:

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

Si, por alguna razón, tu

/usr/local/bin/python3 

no apunta al lugar que desea, que en nuestro caso:

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

solo haz una copia de seguridad:

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

y correr:

rm -rf /usr/local/bin/python3

ahora crea un nuevo enlace simbólico:

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

y ahora tu

/usr/local/bin/python3

está apuntando a

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

Compruébelo ejecutando:

ls -al /usr/local/bin/python3
Kohn1001
fuente
1
finalmente .... gracias !!!!! Me estaba encontrando con este problema en un entorno virtual. Solutions también funciona. solo necesito usar la ubicación correcta de Python
Paul Jurczyk
6

En High Sierra

which python

muestra el Python predeterminado, pero si descargó e instaló la última versión de python.org, puede encontrarlo por:

which python3.6

que en mi máquina muestra

/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6
Daniel Nuriyev
fuente
Esto no responde qué distribución de Python (quién la hizo).
Scott Prive
5

instalado con 'brew install python3', lo encontré aquí ingrese la descripción de la imagen aquí

Georgy Gobozov
fuente
3

Revisé algunas discusiones similares y descubrí que la mejor manera de ubicar todas las compilaciones de python2 / python3 es:

which -a python python3
Yongzhi.C
fuente
2

lo encontré aquí: /Library/Frameworks/Python.framework/Versions/3.6/bin

Suerte
fuente
1

which python3 simplemente resulta en un camino en el que el intérprete se asienta.

snr
fuente
0

Ejecute esto en su terminal interactiva

import os
os.path

Te dará la carpeta donde está instalado Python

MAPA
fuente
0

ejecute el siguiente código en un archivo .py:

import sys

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

Tengo una receta de cocinero para encontrar cosas en linux / macos

Primero actualice la base de datos de localización y luego haga una

locate WHATiWANTtoSEARCH | less

haz un / find para encontrar lo que estás buscando.

para actualizar su localización db en macos haga esto:

sudo /usr/libexec/locate.updatedb

a veces lleva un tiempo. Espero que esto ayude :)

Hassek
fuente