Переустановите пакеты python после обновления homebrew python@3.8 - PullRequest
2 голосов
/ 13 июля 2020

Я недавно обновил python до python@3.8 через homebrew.

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

Это отправило меня в кроличью нору понимания того, как python настроен на macos и У меня есть несколько вопросов.

  1. pip, установленный homebrew, теперь установит все пакеты в / usr / local / lib / python3 .8 / site-packages .

    • Означает ли это, что мне нужно переустановить все мои python пакеты, которые были (и остаются) в / usr / local / lib / python3 .7 ? Должен ли я удалить последний каталог после? (Если на то пошло, я вижу, что у меня также есть каталог / usr / local / lib / python3 .6 )
    • Какой эффективный способ управления этим в будущем, когда следующий python обновление идет? Виртуальные среды для каждого проекта (я не очень знаком с использованием виртуальных сред)?
  2. Когда я запускаю brew list | grep python, я получаю следующий список

python
python3
python@3.8

Я вижу, что python@3.8 правильно обозначен символической ссылкой как / usr / local / bin / python3, но я не знаю, что это за python и python3 в приведенном выше списке с тех пор, как я смотрю на / usr / local / Cellar , я вижу, что у меня есть пустой каталог / usr / local / Cellar / python и / usr / local / Cellar / python3 каталог, на который есть символическая ссылка. Могу ли я удалить эти две папки?

Наконец, изучив все это, я был удивлен, обнаружив исполняемый файл python3, находящийся в / usr / bin . Заглянув в sys.path , когда я выполняю / usr / bin / python3, я вижу, что это своего рода python, установленный Xcode, поскольку он ищет библиотеки в различных Каталоги Xcode.app. Поскольку мой / usr / local / bin находится в верхней части моей переменной envt PATH, этот python3 никогда не будет вызываться, но мне интересно, зачем мне это вообще нужно и могу ли я просто избавиться

Я полагаю, что ответом на многие из этих вопросов будет использование виртуальных сред, чего я чудом избегал делать так долго ... Хотелось бы некоторой помощи в понимании вышеизложенного.

EDIT: Running brew info python или brew info python3 возвращает то же самое

python@3.8: stable 3.8.3 (bottled)
Interpreted, interactive, object-oriented programming language
https://www.python.org/
/usr/local/Cellar/python@3.8/3.8.3_2 (4,268 files, 65.5MB) *
  Poured from bottle on 2020-07-12 at 23:19:08
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/python@3.8.rb
...