Python と IPython の EPD バージョンを使用しています。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
時間があるときに、探しているモジュールをどこで取得しているかを調査してみます。