macOS下lldb遇到_remove_dead_weakref的Import_Error

今天使用lldb遇到了_weakref的Import_Error问题,找了很久才找到合适的解决方法,开此文分享一下。

$ lldb
(lldb) script
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "/usr/local/Cellar/python/2.7.15/Frameworks/Python.framework/Versions/2.7/lib/python2.7/copy.py", line 52, in <module>
    import weakref
  File "/usr/local/Cellar/python/2.7.15/Frameworks/Python.framework/Versions/2.7/lib/python2.7/weakref.py", line 14, in <module>
    from _weakref import (
ImportError: cannot import name _remove_dead_weakref
Python Interactive Interpreter. To exit, type 'quit()', 'exit()' or Ctrl-D.

看到错误提示中有个关键字段 /usr/local/Cellar/python/2.7.15 ,我们知道macOS下 homebrew 安装软件到 /usr/local/Cellar 目录下,所以猜测是不是自己安装的 python2.7.15 的问题。

那尝试卸载已安装的 python2.7.15

brew uninstall python@2

结果得到提醒:

Error: Refusing to uninstall /usr/local/Cellar/python@2/2.7.15_1
because it is required by mongodb, which is currently installed.
You can override this and force removal with:
  brew uninstall --ignore-dependencies python@2

哎呀,得到提示有依赖问题,没事儿!先按照 brew uninstall --ignore-dependencies python@2 强制卸载看看是不是这个版本python与lldb不兼容,卸载后,运行lldb,果然没有错误了!

看来真的是版本不兼容的问题,但是我还必须安装 python2.7.15,因为 mongodb 依赖最新的这个版本的python,还必须安装这个版本python,怎么办?

求助google,找到方法,强制 lldb 按照系统的 bin 环境运行——PATH=/usr/bin /usr/bin/lldb^[Странное смешивание системы + homebrew Python с LLDB],就不会出现问题了。

每次这样运行 lldb 太麻烦了,何不 alias 一下,在终端下执行:

# 如果您使用bash,执行:
# echo 'alias lldb="PATH=/usr/bin /usr/bin/lldb"' >> ~/.bashrc
# 如果您使用zsh,执行:
echo 'alias lldb="PATH=/usr/bin /usr/bin/lldb"' >> ~/.zshrc

开启一个新的终端,运行 lldb 没有异常,Done!


develop

552 字

2018-09-30 04:01 +0000

466

2 评论
Anonymous Chrome 76.0.3809.132 macOS 10.14.6
2019-09-03回复

你这最后一个命令怕不是直接吧zshrc给覆盖没了。。。

5km Edge 77.0.235.18 macOS 10.14.6
2019-09-04回复

@Anonymous , 确实如你所说,已经在文中更改,谢谢提醒!☕️

litreily Chrome 69.0.3497.100 Windows 10/11
2018-09-30回复

你这博客的附注上标不错哦😀

5km Safari 12.0 macOS 10.14
2018-09-30回复

@litreily

是吧!知道吗,这些天使用hugo的感受就是轻快,这两个字足以体现hugo的特点,我觉得你可以了解一下,然后做一个hugo用的主题,我来用,啊哈哈😁,完美!

Powered By Valine
v1.5.2