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


36

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

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

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

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

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

Ответы:


34

Итак, я закончил тем, что удалил все установки 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 с помощью homebrew. Все сделано.

Я ни разу не трогал установку python, расположенную в /Systemпапке.

Да, и чтобы быть ясно. Ответ на оригинальный вопрос

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


@nohillside thx, но ... вы могли бы легко признать недавний вклад XXXX, который вызвал ваше редактирование в качестве комментария здесь. Кажется странной мисс атрибуции для вас .. Разве newby не разрешено оставлять комментарии? И теперь я не вижу имени отправителя, чтобы сделать это сам.
Зипзит

Лучший способ получить атрибуцию - это на самом деле редактировать пост в случае необходимости редактирования, что могут сделать все пользователи (даже анонимные). Если пользователи предпочитают публиковать комментарии по улучшению в качестве ответов, я обычно просто редактирую их в соответствующей публикации.
холме

Homebrew версии python не будут включать поддержку Xcode или инструментов, таких как долото, которое я проверял в последний раз. Так что это обычно не рекомендуется.
Nyteshade

Просто упоминание /System/Library/Frameworks/Python.framework/никогда не должно быть удалено, ссылка docs.python.org/3/using/mac.html
ivan.proskuryakov

новая версия имеет очистку от заваривания
GraphicalDot

5

Моя версия 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путь путем ручного редактирования скрипта запуска - чтобы указать на
варочную

0

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

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

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


Это ДА, можно доверять этим двум ссылкам или НЕТ, не доверять им? Эти ссылки кажутся высококачественными, хорошо аргументированными и объясненными в довольно хороших деталях.
Зипзит

1
@zipzit Вы можете доверять им, но они не будут работать - это две разные вещи. Содержание заслуживает доверия; попробуйте на последней версии macOS, и это не принесет никакого вреда, но это также не будет работать, по причинам, указанным в этом ответе. Я настоятельно рекомендую не отключать SIP, просто чтобы удалить системную установку Python (именно поэтому я не ссылался на инструкции), потому что это не является реальной причиной вашей проблемы и не поможет решить что-либо, потенциально вызывая больше проблем в процессе.
grg

Ваш ответ не имеет смысла для меня. Ни один из качественных ответов, указанных выше, не затрагивает ничего /system. Нет = Не Один, Ноль, Зип, Нада. Есть вещи, которые нужно удалить в 1) папке Python 3.3 в папке «Приложения». 2) /Library/Frameworks/Python.framework 3) ~ 20 символических ссылок в / usr / local / bin. 4) ссылки в пути оболочки (если есть). Я не думаю, что что-то из этого поразит защиту, о которой вы говорите. Чего мне не хватает?
zipzit

@zipzit Некоторое время назад Python был перемещен из / Library в / System / Library, поэтому вы будете касаться / System в попытке удалить установку системы. Системный каркас Python находится в /System/Library/Frameworks/Python.framework, а не в / Library.
grg

$which python /Library/Frameworks/Python.framework/Versions/2.7/bin/python $ which python3 /usr/local/bin/python3плюс питон 2.3, 2.4, 2.5, 2.7 и текущий, расположенный по адресуSystem/Library/Frameworks/Python.framework/Versions/...
zipzit
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.