如何更新macOS Python包



最近每次启动终端时,我都会收到以下通知:

/usr/local/lib/python3.5/site packages/powerline/bindings/zsh/powerline.zsh:200:/usr/local/bin/powerline-config:错误的解释器:/usr/local/opt/python3/bin/python3.5:没有这样的文件或目录/usr/local/lib/python3.5/site packages/powerline/bindings/zsh/powerline.zsh:204:/usr/local/bin/powerline-config:错误的解释器:/usr/local/opt/python3/bin/python3.5:没有这样的文件或目录'

我将此作为一个问题发布到powerlineGitHub页面,并被告知我可能在不知情的情况下(通过homebrew或系统更新,因为我是macOS Beta用户)在macOS上更新了Python版本。

有没有一种方法可以像Gentoo一样在macOS中大规模更新Python包,正如链接的GitHub问题中所指出的那样?开发人员提到Gentoo中有一个python-updater脚本,用于在更新Python后更新包,但macOS中没有这样的脚本。

操作系统:macOS 10.12.3 Beta

任何帮助都将不胜感激!

--paanvaan和

我认为powerlineGitHub页面的诊断是正确的:您通过Homebrew将Python 3.5更新为3.6,因此期望3.5解释器的东西被破坏了。我已经做过几次了。

我发现保持正常的最好方法是存储一个已安装软件包的列表,删除它们,通过Homebrew更新Python,然后重新安装软件包列表。在外壳中,这将是:

$ 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)

这对你现在没有太大帮助,因为你已经升级了,不保留这个列表。一种选择是通过Homebrew回滚Python安装。如果你还没有完成brew cleanup,你可以完成brew switch python3 3.5.x(其中x是你的最新版本)。之后,您可以执行上面的过程,将brew upgrade python3brew switch python3 3.6.0交换。

如果你已经清理了以前的安装,你可以尝试使用这个答案重新安装它,然后执行上面的操作。

如果两者都失败了,您可以手动重新安装软件包。查看/usr/local/lib/python3.5/site-packages/中的内容,查看您通过Pip安装的软件包列表,然后手动安装它们。最好的办法是选择一个有很多依赖项的,这样你就可以同时安装很多软件包。

最新更新