Mac OS X中virtualenv里python shell无法使用光标键问题的解决
最近碰到一个奇葩问题,在系统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
果然解决。