расположение python на mac osx
Я немного запутался с python на osx. Я не знаю, установил ли предыдущий владелец ноутбука macpython с помощью macport. И я вспомнил, что osx имеет встроенную версию python. Я пробовал использовать type -a python
и результат возвращается
python is /usr/bin/python
python is /usr/local/bin/python
однако запуск обоих python в этих местах дает мне [GCC 4.2.1 (Apple Inc. build 5646)] on darwin
. Они оба относятся к одному и тому же встроенному python mac?
Я также читал, что установка macpython one будет
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
и с python2.6
и упомянутые вещи в нем. Но, работая вхолостую, я нахожу то же сообщение, что и выше.
Хм, я немного запутался. Что есть что?
10 ответов:
[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
в этом случае это типично для a python.org установленный экземпляр Python или it может быть построен из исходников.
на 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 (который, вероятно, такой же, как я опубликовал выше).
Я нашел самый простой способ, чтобы найти его, вы можете использовать
which python
он покажет что-то вроде этого:
/usr/bin/python
На Высокой Сьерра -
which python
показывает python по умолчанию, но если вы загрузили и установили последнюю версию из python.org вы можете найти его по:
which python3.6
что на моей машине показывает
/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6
это один для Python3 и Mac:
если у вас есть Mac и вы установили python3, как и большинство из нас:) с:
brew install
ваш файл находится в:
/usr/local/Cellar/python/3.6.4_4/bin/python3
откуда ты знаешь? Беги:
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
is фактически указывая на:
/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
Я проверил несколько подобных обсуждений и выяснил, что лучший способ найти все сборки python2 / python3-это:
which -a python python3
у меня есть рецепт повара для поиска вещей в linux / macos
сначала обновите базу данных locate, а затем выполните
locate WHATiWANTtoSEARCH | less
сделать /найти, чтобы найти то, что вы ищете.
чтобы обновить базу данных locate в macos, сделайте следующее:
sudo /usr/libexec/locate.updatedb
это иногда занимает некоторое время. Надеюсь, это поможет :)