最近碰到一个奇葩问题,在系统python shell里使用光标是一切正常的,但是到了virtualenv里就不行了,变成各种转义符,不能正常移动光标。
搜了半天,都说跟readline有关,建议重新编译python,可是为什么系统的python是正常的呢?而且我是用homebrew安装的,应该也不会有问题啊。
试过很多方法,比如重装readline或virtualenv什么的,都不能解决。
最后是因为看到一个解决方案里说要修改pystartup脚本,加入 import readline 什么的,我就想试试直接在python shell里import看看,结果果然暴露了问题原因:
ImportError: dlopen(/Users/raptor/.virtualenvs/bottle/lib/python2.7/lib-dynload/readline.so, 2): Library not loaded: /usr/local/opt/readline/lib/libreadline.6.dylib
Referenced from: /Users/raptor/.virtualenvs/bottle/lib/python2.7/lib-dynload/readline.so
Reason: image not found
这就好办了,直接创建一个symbol link,从 libreadline.7.dylib 到 libreadline.6.dylib 即可。
ln libreadline.7.dylib libreadline.6.dylib
果然解决。
本文介绍了一种在Python虚拟环境中出现的光标显示异常问题,并详细记录了解决过程,包括发现问题的原因及最终通过创建符号链接来修复该问题。
983

被折叠的 条评论
为什么被折叠?



