我正在使用EPD版本的Python和IPython。在使用easy_install安装了一些模块后,我发现虽然它们可以被导入,但无法通过制表符自动补全。它们存在于路径中,但是,尽管包括的模块(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
在哪里获取其寻找的模块。