Как обновить пакеты macOS Python


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

/usr/местные/библиотека/питон3.5/сайте-пакетов/линии электропередач/привязки/ЗШ/Powerline-адаптеров.zsh: 200: /usr / local / bin / powerline-config: плохой интерпретатор: /usr / local / opt/python3 / bin / python3. 5: нет такого файла или каталога /usr/местные/библиотека/питон3.5/сайте-пакетов/линии электропередач/привязки/ЗШ/Powerline-адаптеров.zsh: 204: /usr / local / bin / powerline-config: плохой интерпретатор: /usr / local / opt/python3 / bin / python3. 5: нет такого файла или каталог '

Я опубликовал это на странице powerline GitHub как проблему и мне сообщили, что я, вероятно, обновил свою версию Python на macOS без моего ведома (через homebrew или, возможно, через обновление системы, так как я являюсь бета-пользователем macOS).

Существует ли способ массового обновления пакетов Python в macOS, как в Gentoo, как указано в связанном выпуске GitHub? Разработчик упомянул, что в Gentoo есть скрипт python-updater, который используется для обновления пакетов после обновления Python, но для macOS такого скрипта не существует.

OS: macOS 10.12.3 Beta

Любая помощь будет оценена!

-- paanvaannd

1 2

1 ответ:

Я думаю, что диагноз со страницы powerline GitHub верен: вы обновили Python 3.5 до 3.6 через Homebrew, поэтому вещи, ожидающие интерпретатора 3.5, сломаны. Я делал это пару раз.

Лучший способ сохранить все в норме-это сохранить список установленных пакетов, удалить их, обновить Python через Homebrew,а затем переустановить список пакетов. В оболочке это будет:

$ pip3 list | cut -d " " -f 1 > package-list.txt # Store package names without versions
$ pip3 uninstall -y $(cat package-list.txt) # Cannot use redirection
$ brew update && brew upgrade python3
$ pip3 install $(cat package-list.txt)

Это не очень полезно для вас сейчас, потому что вы уже обновились без сохранения этого списка. Один из вариантов-откатить установку Python через Homebrew. Если вы еще не сделали brew cleanup, Вы можете сделать brew switch python3 3.5.x (где x - последняя версия, которая у вас была). После этого вы можете выполнить описанную выше процедуру, заменив brew upgrade python3 на brew switch python3 3.6.0.

Если вы очистили предыдущую установку, вы можете попробовать переустановить ее, используя этот ответ, а затем сделать то же самое.

Если оба варианта не сработают, вы можете просто вручную переустановить свои пакеты. Посмотри, что там внутри. /usr/local/lib/python3.5/site-packages/ для списка пакетов, установленных через Pip, и установите их вручную. Лучше всего выбрать один с большим количеством зависимостей, так что вы устанавливаете много пакетов сразу.