我正在使用 Python 和 IPython 的 EPD 版本。在使用 easy_install 安装了一些模块后,我注意到,虽然它们可以被导入,但它们不能通过 tab 完成。它们存在于路径上,但是,虽然包含的模块(pylab、readline、math)可以完成,但这些新模块不能。
有谁知道我应该调查什么才能找到问题?我检查了这些包是否与其他模块位于同一位置:
In [1]: import pylab
In [2]: pylab
Out[2]: <module 'pylab' from '/Library/Frameworks/Python.framework/Versions/5.0.0/lib/python2.5/site-packages/pylab.pyc'>
In [3]: import BeautifulSoup
In [4]: BeautifulSoup
Out[4]: <module 'BeautifulSoup' from '/Library/Frameworks/Python.framework/Versions/5.0.0/lib/python2.5/site-packages/BeautifulSoup-3.1.0.1-py2.5.egg/BeautifulSoup.pyc'>
也许有些东西没有.eggs
正确处理?谢谢。
更新:跟进 gnibbler 的帖子,我发现选项卡完成在 completer.py 的第 633 行遇到异常:
try:
ret = self.matches[state].replace(magic_prefix,magic_escape)
return ret
except IndexError:
return None
但是失败的原因是什么...
更新:
In [5]: from Bea<tab_here>
*** COMPLETE: <Bea> (0)
matches: []
state: 0
所以这只是说匹配列表是一个空集:没有匹配。它仍然找不到模块。当我有时间时,我将尝试调查从哪里matches
获取模块。