我正在使用 EPD 版本的 python 和 IPython。使用 easy_install 安装一些模块后,我注意到虽然可以导入它们,但无法使用 Tab 键完成它们。它们存在于路径上,但同时包含模块(pylab、readline、math)can完成后,这些新模块无法完成。
有人知道我应该检查什么才能找到问题吗?我检查过这些包是否与其他模块位于同一位置:
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
正确吗?谢谢。
Update:继 gnibbler 的帖子之后,我发现 tab 补全在completer.py 的第 633 行遇到了异常:
try:
ret = self.matches[state].replace(magic_prefix,magic_escape)
return ret
except IndexError:
return None
但失败的原因是什么...
Update:
In [5]: from Bea<tab_here>
*** COMPLETE: <Bea> (0)
matches: []
state: 0
所以这只是说匹配列表是一个空集:没有匹配。仍然没有找到该模块。我会尝试调查在哪里matches
当我有时间的时候正在获取它正在寻找的模块。
在我厌倦了这种行为后,昨天我找到了这个问题的答案。
看起来 IPython 有一个简单的数据库,其中包含它可以找到的所有模块sys.path
。每次安装新模块时,您都必须编写魔法
In [1]: %rehashx
以便 IPython 重新生成其数据库。然后你就可以用 TAB 补全新模块了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)