最近每次启动终端时,我都会收到以下通知:
/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:没有这样的文件或目录'
我将此作为一个问题发布到powerline
GitHub页面,并被告知我可能在不知情的情况下(通过homebrew
或系统更新,因为我是macOS Beta用户)在macOS上更新了Python版本。
有没有一种方法可以像Gentoo一样在macOS中大规模更新Python包,正如链接的GitHub问题中所指出的那样?开发人员提到Gentoo中有一个python-updater
脚本,用于在更新Python后更新包,但macOS中没有这样的脚本。
操作系统:macOS 10.12.3 Beta
任何帮助都将不胜感激!
--paanvaan和
我认为powerline
GitHub页面的诊断是正确的:您通过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 python3
与brew switch python3 3.6.0
交换。
如果你已经清理了以前的安装,你可以尝试使用这个答案重新安装它,然后执行上面的操作。
如果两者都失败了,您可以手动重新安装软件包。查看/usr/local/lib/python3.5/site-packages/
中的内容,查看您通过Pip安装的软件包列表,然后手动安装它们。最好的办法是选择一个有很多依赖项的,这样你就可以同时安装很多软件包。