расположение Python на Mac OSX

97

Я немного запутался с питоном на osx. Не знаю, устанавливал ли предыдущий владелец ноутбука macpython с помощью macport. И я вспомнил, что у osx есть встроенная версия python. Я пробовал использовать, type -a pythonи результат вернулся

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

Однако запуск обоих питонов в этих местах дает мне [GCC 4.2.1 (Apple Inc. build 5646)] on darwin. Они оба относятся к одному и тому же встроенному встроенному Mac Python?

Я также читал, что установка macpython приведет к

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

Я посмотрел Applications, и там есть MacPortпапка с python2.6упомянутым материалом. Но при запуске IDLE я нахожу то же сообщение, что и выше.

Хм, я немного запуталась. Что есть что?

го
источник

Ответы:

64

[GCC 4.2.1 (Apple Inc. build 5646)]- это версия GCC, на которой были созданы Python (ы), а не версия самого Python. Эта информация должна быть в предыдущей строке. Например:

# 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/binвсегда должны быть или связаны с файлами, предоставленными Apple в OS X, за исключением случаев, когда кто-то неопознанно что-то там изменил. Чтобы узнать, где именно /usr/local/bin/pythonнаходится ссылка на:

$ 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

В этом случае это типично для экземпляра Python, установленного на python.org, или он может быть создан из исходного кода.

Нед Дейли
источник
55

Я нашел самый простой способ найти его, вы можете использовать

which python

он покажет что-то вроде этого:

/usr/bin/python

Гэвин
источник
3
Это не отвечает на вопрос, какой дистрибутив Python (кто его сделал).
Скотт Прайв
54

В Mac OS X он находится в среде Python в /System/Library/Frameworks/Python.framework/Resources.

Полный путь:

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

Кстати, легко узнать, где вы можете найти конкретный двоичный файл: which Pythonпокажет вам путь к вашему двоичному файлу Python (который, вероятно, такой же, как я писал выше).

Elslooo
источник
да, я знал это. Просто я запутался - я запустил интерпретатор в / usr / local / bin / и напечатал sys.executable. Там написано / usr / bin / python. но я прочитал документацию, и там написано, что предоставленное яблоко находится в / usr / bin /, а символическая ссылка на исполняемый файл Python помещена в / usr / local / bin / для macpython.
goh
Что ж, это имеет смысл: когда вы сами компилируете исполняемый файл python и перемещаете его, скажем, в / Users / John / Downloads /, он покажет вам, что он находится в / Users / John / Downloads / python. Вы можете запускать несколько исполняемых файлов рядом друг с другом в одной системе. AFAIK тот, который находится в Python.framework, является основным, поэтому вы должны полагаться на него.
elslooo
28
Фактически, поставляемые Apple Pythons в Mac OS X входят в состав /System/Library/Frameworks/Python.framework. Все, что /Library/Frameworks/Python.frameworkпроисходит, поступает от сторонней установки, обычно с помощью установщика python.org (или другого дистрибьютора), или если вы выполнили сборку фреймворка Python по умолчанию из исходного кода.
Ned Deily
1
Когда я бег /System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7на ps auxвыходе показывает мне /System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python, почему это - я не вижу , что это символическое? ( Задал этот вопрос на AskDifferent )
Zitrax
@ Тим Спасибо. Когда я перехожу в /Library/Frameworks/Python.framework/Versions/, я вижу не 2.7 (это то, что я установил), а файл псевдонима с именем «Current», который при нажатии вызывает ошибку «Операция не может участвовать в конкурсе, потому что не может быть найден исходный элемент для "Текущий" ".
Pyderman,
45

Это решит все ваши проблемы, связанные с Python в базовой оболочке:

Если у вас Mac и вы установили python3, как и большинство из нас :) (с brew install - ofc)

ваш файл находится в:

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

Откуда вы знаете? -> вы можете запустить это на каждой базовой оболочке Run:

which python3

У вас должно получиться:

/usr/local/bin/python3

Теперь это символическая ссылка, откуда ты знаешь? Бегать:

ls -al /usr/local/bin/python3 

и вы получите:

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

что означает, что ваш

/usr/local/bin/python3 

фактически указывает на:

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

Если по какой-то причине ваш

/usr/local/bin/python3 

не указывает на то место, которое вы хотите, что в нашем случае:

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

просто сделайте резервную копию:

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

и запустите:

rm -rf /usr/local/bin/python3

теперь создайте новую символическую ссылку:

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

а теперь твой

/usr/local/bin/python3

указывает на

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

Проверьте это, запустив:

ls -al /usr/local/bin/python3
Kohn1001
источник
1
наконец .... спасибо !!!!! я столкнулся с этой проблемой в виртуальной среде. Решения тоже работают. просто нужно использовать правильное местоположение Python
Пол Юрчик,
1
Для меня это также полезный справочник по самой базовой оболочке - множество дополнительных шагов и очень хорошо объяснено :)
cellepo
6

На высокой Сьерре

which python

показывает питон по умолчанию, но если вы скачали и установили последнюю версию с python.org, вы можете найти его:

which python3.6

который на моей машине показывает

/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6
Даниил Нуриев
источник
Это не отвечает на вопрос, какой дистрибутив Python (кто его сделал).
Скотт Прайв
5

установлен с помощью 'brew install python3', нашел здесь введите описание изображения здесь

Георгий Гобозов
источник
3

Я проверил несколько подобных обсуждений и выяснил, что лучший способ найти все сборки python2 / python3:

which -a python python3
Yongzhi.C
источник
2

я нашел это здесь: /Library/Frameworks/Python.framework/Versions/3.6/bin

Счастливчик
источник
1

which python3 просто приведите к пути, на котором остановится интерпретатор.

snr
источник
0

Запустите это в своем интерактивном терминале

import os
os.path

Он предоставит вам папку, в которой установлен python

MaPY
источник
0

запустите следующий код в файле .py:

import sys

print(sys.version)
print(sys.executable)
hanumanDev
источник
-1

У меня есть кулинарный рецепт поиска вещей в linux / macos

Сначала обновите базу данных местоположения, затем выполните

locate WHATiWANTtoSEARCH | less

сделайте / найти, чтобы найти то, что ищете.

чтобы обновить свою базу данных местоположения в macos, сделайте следующее:

sudo /usr/libexec/locate.updatedb

иногда это занимает время. Надеюсь это поможет :)

Hassek
источник