每次我最近启动终端时,我都会收到以下通知:
/usr/local/lib/python3.5/site-packages/powerline/bindings/zsh/powerline.zsh:200:/ usr / local / bin / powerline-config:bad interpreter:/ 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:bad interpreter:/ usr / local / opt / python3 / bin / python3.5:没有这样的文件或目录'
我将此帖子发布到powerline
GitHub页面an issue,并被告知我可能在我不知情的情况下(通过homebrew
或可能通过系统更新更新了我在macOS上的Python版本,因为我是macOS Beta用户。)
有没有办法像在Gentoo中那样在macOS中集中更新Python包,正如链接的GitHub问题所指出的那样?开发人员提到Gentoo中有一个python-updater
脚本,用于在更新Python后更新包,但macOS不存在这样的脚本。
OS:macOS 10.12.3 Beta
任何帮助将不胜感激!
- paanvaannd
答案 0 :(得分:3)
我认为来自powerline
GitHub页面的诊断是正确的:你通过Homebrew将Python 3.5更新到3.6,所以期望3.5解释器的东西都被打破了。我做了几次。
我发现保持理智的最好方法是存储已安装软件包的列表,删除它们,通过Homebrew更新Python,然后重新安装软件包列表。在shell中,这将是:
$ 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
交换。
如果您已清理以前的安装,可以尝试使用this answer重新安装,然后执行上述操作。
如果两者都失败,您只需手动重新安装软件包即可。查看/usr/local/lib/python3.5/site-packages/
中有关通过Pip安装的软件包列表的内容,并手动安装。最好的方法是选择一个具有大量依赖关系的,以便一次安装许多包。