Удалите и переустановите Python на Mac. Могу ли я доверять этим старым ссылкам?

Я новичок в Mac, и, видимо, я сделал какую-то ошибку. Я изучаю python с помощью учебных пособий, а между Homebrew, Pip и XCode почему-то все мои версии смешаны. Pip3 указывает на python2, поэтому все мои испытания python3 терпят неудачу и т. д.

Я изучаю, как безопасно удалить все версии, а затем выполнить чистую установку (доморощенный?), но я немного нервничаю.

Я нашел несколько отличных ссылок:

Ясно, что никто ничего не трогает в корневом /systemкаталоге, и в основном все остальное удаляется. Что меня нервирует, так это то, что эти ссылки устарели. (шесть лет! +) Я не уверен, действительно ли я доверяю им или нет.

Кто-нибудь был здесь в последнее время? Могу ли я доверять сообщениям, указанным выше? Как мне убрать этот беспорядок с версией Python? Примечание. Я использую MacOS Sierra (10.12.5)

Ответы (3)

Итак, в итоге я удалил все установки Python и переустановил их через Homebrew.

  1. which python---> /Library/Frameworks/Python.framework/Versions/2.7/bin/pythonУдалите весь каталог Python.framework из /Library/Frameworks.
  2. which python3---> /usr/local/bin/python3Удалите весь каталог python3.
  3. Я немного нервничал по поводу символических ссылок. Сначала я переименовал те, которые явно вызывали у меня проблемы. Оказалось, что это было ненужно. Вместо этого просто используйте:

    $ brew doctor
    Warning: Broken symlinks were found. Remove them with 'brew prune':
      /usr/local/bin/python-32
      /usr/local/bin/python2-32
      /usr/local/bin/python2.7-32
      /usr/local/bin/python2_DNU
      /usr/local/bin/python_DNU
      /usr/local/bin/pythonw-32
      /usr/local/bin/pythonw2-32
      /usr/local/bin/pythonw2.7-32
    

    Итак, brew prune(или brew cleanup --pruneв более новых версиях Homebrew) работало отлично. Он удалил все вышеперечисленные символические ссылки.

  4. Переустановите python и python3 через доморощенный. Все сделано.

Я ни разу не коснулся установки Python, расположенной в /Systemпапке.

О, и чтобы было ясно. Ответ на исходный вопрос

Да, можно доверять старым ссылкам, как написано! Это руководство остается в силе.

@nohillside, спасибо, но .. вы могли бы легко отметить недавний вклад XXXX здесь, который вызвал ваше редактирование в качестве комментария здесь. Кажется странным отсутствием атрибуции для вас.. Новичкам не разрешено оставлять комментарии? И теперь я не вижу имя отправки, чтобы сделать это самостоятельно.
Лучший способ получить атрибуцию — это фактически отредактировать сообщение, если это необходимо, что могут сделать все пользователи (даже анонимные). Если пользователи решат публиковать комментарии по улучшению в качестве ответов, я обычно просто редактирую их в соответствующем посте.
Доморощенные версии Python не будут включать поддержку Xcode или инструментов, таких как chisel, которые я проверял последним. Так что это обычно не рекомендуется.
Просто упомянуть /System/Library/Frameworks/Python.framework/, что никогда нельзя удалять, ссылка docs.python.org/3/using/mac.html
в новой версии есть очистка варева
Python 3 не имеет обратной совместимости. Вы сломаете все программное обеспечение на основе Python 2, удалив его. Почему бы просто не сохранить обе версии и не перенаправить вашу оболочку на использование последней версии?

Моя версия Python была 3.6, я хотел обновить ее до 3.7 (на случай, если у вас есть похожие требования). Я использую macOS версии 10.12.6, и у меня сработало простое удаление и повторная установка:

brew uninstall --ignore-dependencies python3

Затем:

brew install python3

и сделано:

python3
Python 3.7.2 (default, Jan 13 2019, 12:51:54) 
[Clang 9.0.0 (clang-900.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
Это хорошо сработало для меня. Мне нужно было скорректировать ipythonпуть, вручную отредактировав скрипт запуска, чтобы указать на варочную версию python.

Системные файлы защищены системой защиты целостности системы. Вы не сможете следовать этим инструкциям для rm -rfслучайных папок в /System без предварительного отключения SIP.

Однако, поскольку файлы защищены, вы знаете, что файлы не были изменены. Ваш «беспорядок версии» будет связан с настройкой вашей оболочки и в любом случае не будет изменен путем изменения системных файлов. Вы не должны касаться этих файлов, которые гарантированно существуют в macOS.

Homebrew устанавливается отдельно в /usr/local/Cellar. Используйте Homebrew для управления установкой Python и полностью игнорируйте установку системы.

Было ли это ДА, можно доверять этим двум ссылкам, или НЕТ, не доверять им? Эти ссылки кажутся качественными, хорошо аргументированными и довольно подробно объясненными.
@zipzit Им можно доверять, но они не будут работать — это две разные вещи. Контент заслуживает доверия; попробуйте на последней версии macOS, и это не принесет никакого вреда, но и не сработает по причинам, указанным в этом ответе. Я настоятельно рекомендую не отключать SIP только для того, чтобы удалить системную установку Python (именно поэтому я не привожу ссылки на инструкции), потому что это не фактическая причина вашей проблемы и не поможет ничего решить, потенциально вызывая больше проблем в процессе.
Ваш ответ не имеет смысла для меня. Ни один из качественных ответов, связанных выше, ничего не касается в /system. None = Not One, Zero, Zip, Nada. Есть вещи, которые нужно удалить в 1) папке Python 3.3 в папке «Приложения». 2) /Library/Frameworks/Python.framework 3) ~ 20 симлинков в /usr/local/bin. 4) ссылки в пути к оболочке (если есть). Я не думаю, что кто-то из них поразит защиту, о которой вы говорите. Что мне не хватает?
@zipzit Некоторое время назад Python был перемещен из /Library в /System/Library, поэтому вы будете касаться /System в попытке удалить установку системы. Системная среда Python находится в /System/Library/Frameworks/Python.framework, а не в /Library.
$which python /Library/Frameworks/Python.framework/Versions/2.7/bin/python $ which python3 /usr/local/bin/python3плюс python 2.3, 2.4, 2.5, 2.7 и текущий, расположенный по адресуSystem/Library/Frameworks/Python.framework/Versions/...
@zipzit Что-то еще установило его в /Library, тогда у меня вообще нет фреймворка Python в /Library