emplacement python sur mac osx

94

Je suis un peu confus avec le python sur osx. Je ne sais pas si l'ancien propriétaire de l'ordinateur portable a installé macpython en utilisant macport. Et je me suis souvenu qu'osx avait une version intégrée de python. J'ai essayé d'utiliser type -a pythonet le résultat est retourné

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

Cependant, exécuter les deux python à ces endroits me donne [GCC 4.2.1 (Apple Inc. build 5646)] on darwin. Font-ils tous les deux référence au même mac python intégré fourni?

J'ai aussi lu que l'installation de macpython serait

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

J'ai regardé Applications, et il y a un MacPortdossier avec python2.6et les éléments mentionnés. Mais en cours d'exécution IDLE, je trouve le même message que ci-dessus.

Hmm, je suis un peu confus. Lequel est lequel?

goh
la source

Réponses:

63

[GCC 4.2.1 (Apple Inc. build 5646)]est la version de GCC avec laquelle le (s) Python (s) ont été construits, pas la version de Python elle-même. Cette information devrait être sur la ligne précédente. Par exemple:

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

Les éléments dans /usr/bindoivent toujours être ou être liés à des fichiers fournis par Apple sous OS X, à moins que quelqu'un y ait malencontreusement changé les choses. Pour voir exactement où le /usr/local/bin/pythonest lié:

$ 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

Dans ce cas, c'est typique pour une instance Python installée sur python.org ou cela pourrait être une instance construite à partir des sources.

Ned Deily
la source
54

J'ai trouvé le moyen le plus simple de le localiser, vous pouvez utiliser

which python

il montrera quelque chose comme ceci:

/usr/bin/python

Gavin
la source
3
Cela ne répond pas à quelle distribution de Python (qui l'a fait).
Scott Prive
53

Sur Mac OS X, c'est dans le framework Python dans /System/Library/Frameworks/Python.framework/Resources.

Le chemin complet est:

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

Btw, il est facile de savoir où vous pouvez trouver un binaire spécifique: which Pythonvous montrera le chemin de votre binaire Python (qui est probablement le même que celui que j'ai publié ci-dessus).

Elslooo
la source
oui je le savais. C'est juste que je suis confus - j'ai exécuté l'interpréteur sur / usr / local / bin / et imprimé sys.executable. Il dit / usr / bin / python. mais j'ai lu la documentation et il est dit que le fichier fourni par Apple était dans / usr / bin / et le "Un lien symbolique vers l'exécutable Python est placé dans / usr / local / bin /" de macpython.
goh
Eh bien, cela a du sens: lorsque vous compilez vous-même l'exécutable python et que vous le déplacez vers, disons / Users / John / Downloads /, cela vous montrera qu'il est placé dans / Users / John / Downloads / python. Vous pouvez exécuter plusieurs exécutables côte à côte sur le même système. AFAIK celui de Python.framework est le principal, vous devriez donc vous fier à celui-là.
elslooo
28
En fait, les Pythons fournis par Apple dans Mac OS X sont en /System/Library/Frameworks/Python.framework. Tout ce qui se trouve dans /Library/Frameworks/Python.frameworkprovient d'une installation tierce, généralement un programme d'installation de python.org (ou d'un autre distributeur) ou si vous avez créé une version de framework par défaut de Python à partir des sources.
Ned Deily
1
Quand j'exécute /System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7la ps auxsortie me montre /System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python, pourquoi est-ce - je ne vois pas que c'est un lien symbolique? (A posé cette question à AskDifferent )
Zitrax
@Tim Merci. Quand je vais dans /Library/Frameworks/Python.framework/Versions/, je ne vois pas 2.7 (c'est ce que j'ai installé), mais un fichier d'alias appelé 'Current', qui, lorsqu'on clique dessus, me donne l'erreur "L'opération ne peut pas être mis en concurrence, car l'élément d'origine pour "Actuel" est introuvable. "
Pyderman
42

Celui-ci résoudra tous vos problèmes concernant Python et Mac:

Si vous avez un Mac et que vous avez installé python3 comme la plupart d'entre nous le font :) (avec brew install - ofc)

votre fichier se trouve dans:

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

Comment le sais-tu? Courir:

which python3

Tu devrais obtenir:

/usr/local/bin/python3

Maintenant, c'est un lien symbolique, comment le savez-vous? Courir:

ls -al /usr/local/bin/python3 

et vous obtiendrez:

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

ce qui signifie que votre

/usr/local/bin/python3 

pointe en fait vers:

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

Si, pour une raison quelconque, votre

/usr/local/bin/python3 

ne pointe pas vers l'endroit souhaité, ce qui dans notre cas:

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

il suffit de le sauvegarder:

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

et courir:

rm -rf /usr/local/bin/python3

créez maintenant un nouveau lien symbolique:

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

et maintenant votre

/usr/local/bin/python3

pointe vers

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

Vérifiez-le en exécutant:

ls -al /usr/local/bin/python3
Kohn1001
la source
1
enfin .... merci !!!!! je rencontrais ce problème dans un environnement virtuel. Les solutions fonctionnent également. il suffit d'utiliser le bon emplacement python
Paul Jurczyk
6

Sur High Sierra

which python

affiche le python par défaut, mais si vous avez téléchargé et installé la dernière version de python.org, vous pouvez le trouver en:

which python3.6

qui sur ma machine montre

/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6
Daniel Nuriyev
la source
Cela ne répond pas à quelle distribution de Python (qui l'a fait).
Scott Prive
5

installé avec 'brew install python3', trouvé ici entrez la description de l'image ici

Georgy Gobozov
la source
3

J'ai vérifié quelques discussions similaires et j'ai découvert que le meilleur moyen de localiser toutes les versions de python2 / python3 est:

which -a python python3
Yongzhi.C
la source
2

je l'ai trouvé ici: /Library/Frameworks/Python.framework/Versions/3.6/bin

Chanceux
la source
1

which python3 résultent simplement en un chemin dans lequel l'interprète s'installe.

snr
la source
0

Exécutez ceci dans votre terminal interactif

import os
os.path

Il vous donnera le dossier où python est installé

MaPY
la source
0

exécutez le code suivant dans un fichier .py:

import sys

print(sys.version)
print(sys.executable)
hanumanDev
la source
-1

J'ai une recette de cuisinier pour trouver des choses sous linux / macos

Mettez d'abord à jour la base de données de localisation, puis effectuez une

locate WHATiWANTtoSEARCH | less

faites un / find pour trouver ce que vous cherchez.

pour mettre à jour votre base de données de localisation dans macos, procédez comme suit:

sudo /usr/libexec/locate.updatedb

cela prend parfois un certain temps. J'espère que cela t'aides :)

Hassek
la source