web-dev-qa-db-ja.com

インポートされたモジュールで「ipython」タブのオートコンプリートが機能しない

IPythonでのタブ補完は機能していないようです。例えば、

import numpy
numpy.<tab>

単にタブを追加します。

import numpy
num<tab>

タブも追加するだけです。この問題の考えられる原因をいくつか教えてください。 Windows 7を実行していますが、Python 2.6.5。

74
djpark121

pyreadline ライブラリがインストールされていることを確認してください。タブ補完やその他のIPython機能に必要です-WindowsではIPythonパッケージに付属していないため、個別にインストールする必要があります-

> pip install pyreadline
91
joaquin

Ipythonrcファイルが古くなっている可能性があります。実行してみてください

ipython -upgrade
9
zwalker

pipは、pyreadlineバージョン1.7.1がインストールされていると教えてくれました

C:\Users\me>pip freeze | grep readline
pyreadline==1.7.1

pyreadlineをアップグレードすると修正されました:

C:\Users\me>pip install --upgrade pyreadline

C:\Users\me>pip freeze | grep readline
pyreadline==2.0
6
Rabarberski

古典的な「あなたはそれをオフにして再びオンにしてみましたか」は私のために働いた。

pip uninstall ipython
pip install ipython
2

StackOverflowの他の誰かがこのリンクを投稿しました: http://www.vankouteren.eu/blog/2009/06/getting-ipython-readline-and-auto-completion-to-work-on-mac-os- x /

基本的にeasy_install readlineはreadline Eggがインストールされた場所を発見し、このreadlineを使用するためにipython binスクリプトを編集します:

  1. 「公式」readlineをインストールします:easy_install readline
  2. それがどこにあるかを発見してください。 /Library/Python/site-packages/readline-*.Eggまたは対応するVirtualenvを見てください
  3. Ipython binの場所を見つけます:which ipython
  4. このファイルに1行追加し、import sys行の直後にreadline Eggパスを追加します。

私のvirtualenved ipython binスクリプトは次のように機能しました:

#!/Users/alanjds/src/git/cervejeiras/venv/cervejeiras-lfs/bin/python
# EASY-INSTALL-ENTRY-SCRIPT: 'ipython==0.13.1','console_scripts','ipython'
__requires__ = 'ipython==0.13.1'
import sys

### ONLY LINE ADDED:
sys.path.insert(0, '/Users/alanjds/src/git/cervejeiras/venv/cervejeiras-lfs/lib/python2.6/site-packages/readline-6.2.4.1-py2.6-macosx-10.6-fat.Egg')
####

from pkg_resources import load_entry_point

if __== '__main__':
    sys.exit(
        load_entry_point('ipython==0.13.1', 'console_scripts', 'ipython')()
    )
1
alanjds

現時点では、OSXで、ipythonをインストールしたpipはタブ補完を提供しません。pyreadlinerelease.pyは無効です。

easy_install ipython readline

YMMV。

1
Skylar Saveland

これは本当に古い質問ですが、上記の答えはどれも私にとってはうまくいきませんでした(そして、この性質の質問をグーグルで検索すると、これが最初のヒットです)。

これはWindows専用ではなく、CentOS 6.5とPython 2.7

ここに私がやったことがあります:

apt-get/yum install ncurses-devel
#If you want history in iPython:
apt-get/yum install sqlite-devel
easy_install ipython readline
ipython

In [1]: from 
Display all 391 possibilities? (y or n)

-develパッケージがない場合、それらをリンクして卵をビルドするときが来ると、インストールは失敗します。これが他の人に役立つことを願っています!

1
steve-gregory

そうしなければならなかった mv ~/.ipython{,.bak} 私の場合。

0
maximk

Jupyterノートブックを使用していて、ここの投稿で提案されているすべてのステップを試してもTabのオートコンプリートが機能する場合は、関数定義内でTabのオートコンプリートを使用しようとしているかどうかを確認できます。インポートステートメントが以下のような関数の一部である場合、Tabオートコンプリートは取得されません。インポート文を関数の外側に配置し、パッケージの自動補完を要求する前にそれらを一度実行する必要があります。

def myfunction():
    import pandas as pd
    import numpy as np

    a = pd.DataFrame(np.random.normal(1,3, (4,4))
    return a
0
ds2000

私はこの問題を抱えていて、探しているモジュールにピップがインストールされていることを知っていました。 $ ipython --initは私のために問題を解決しました。

0
mvnicosia

Pyreadlineはipythonに必要です。 pyreadlineをインストールします。これはWindows 7で行われました。pyreadlineZipを取得します。 pyreadline-master.Zip 、unzip。 PowerShellでディレクトリをuzipped pyreadlineに変更し、pythonがPathに設定されていることを確認し、commandpython setup.py installこれはC:\ Python27\Lib\site-packagesのpyreadlineをインストールします

0
user3101288

IPythonをダウングレードするとうまくいきました。

pip install --upgrade ipython==5.8.0
0
Justin Case