'ipython'탭 자동 완성이 가져온 모듈에서 작동하지 않습니다.


83

IPython에서 탭 완성이 작동하지 않는 것 같습니다. 예를 들면

import numpy
numpy.<tab>

단순히 탭을 추가합니다.

import numpy
num<tab>

탭도 추가합니다. 이 문제의 가능한 원인을 제안 해 주시겠습니까? Windows 7 및 Python 2.6.5를 실행하고 있습니다.


1
아래 솔루션이 저에게 효과적이었습니다. 그렇다면 답변을 수락 함으로 표시해야합니다.
bacar

아래의 어떤 것도 나를 위해 일하지 않았습니다. 최신 pyreadline이 있습니다. Python 3.5에서 jupyter 노트북 실행
Michael Szczepaniak

작동 중이고 임의의 키를 누른 후 작동을 멈춘 경우 셀 유형이 실수로 "Code"에서 "Markdown"또는 "Raw NBConvert"와 같은 다른 것으로 변경되었는지 확인합니다.
Sorin Postelnicu

당신은 단지 새로운 파이썬 모듈을 설치하고 ipython 수입 자동 완성을하지 않을 경우, 이동 여기
트레버 보이드 스미스

jedi0.17에서 0.18 로의 업그레이드는 버그가 있으며 IPython 탭 완성을 비활성화합니다. 아래에서 2020 년 12 월 답변을 확인하세요.
Abel Cheung

답변:


93

pyreadline 라이브러리를 설치했는지 확인하십시오 . 탭 완성 및 기타 IPython 기능에 필요합니다. Windows에서는 IPython 패키지와 함께 제공되지 않으며 별도로 설치해야합니다.

> pip install pyreadline

1
@joaquin을 (를) 사용하여 Mac 용으로 설치하려고했지만 install gnureadline같은 작업을 수행 할 때 여전히 탭 완성을 얻을 수 없습니다 numpy.<tab>. 이것이 왜 그런지 아십니까?
TheRealFakeNews

@AlanH 죄송합니다. MAC에 대해 잘 모릅니다. 새롭고 구체적인 질문을 열어야 할 수도 있습니다.
joaquin

1
참고로, 바로 작동하지 않는 경우 (나에게 해당) 새 콘솔을 시작합니다.
Alby

2
설치를 관리하기 위해 Anaconda 또는 Miniconda를 사용하도록 권장 사항 추가. 방금 ipython ( conda install ipython)을 설치 했고 탭 완성 문제가 없었습니다. pip와 동시에 사용할 수 있습니다.
Kenny

1
iPython은 버전 5.0 이후 pyreadlines에 의존하지 않고 pyreadlines는 2017 년 이후로 개발되지 않았기 때문에이 답변은 구식이라고 생각합니다.- ipython.org
pyreadline.html

20

누군가가 최근을 사용하고 7.19.0있고 자동 완성이 작동하지 않는 경우 다음으로 다운 그레이드 jedi하십시오 0.17.2.

pip install jedi==0.17.2

자세한 내용은 https://github.com/ipython/ipython/issues/12740 을 참조 하세요 .


이는 2021 년 1 월 현재 상태를 반영합니다. parso패키지도 0.7.1로 다운 그레이드해야합니다.
Abel Cheung

1
jedi를 0.17.2로 다운 그레이드하면 효과가있었습니다
Augusto

7

ipythonrc 파일이 오래되었을 수 있습니다. 달리기

ipython -upgrade

10
-upgrade플래그는 더 이상 지원되지 않습니다.
jsmedmar

6

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

4

iPython을 다운 그레이드하는 것이 트릭이었습니다.

pip install --upgrade ipython==5.8.0

3

고전적인 '전원을 껐다가 다시 켜봤습니까?'가 저에게 효과적이었습니다.

pip uninstall ipython
pip install ipython

3

나는이 문제가 있었다. python-parso 패키지를 다운 그레이드하여 해결했습니다.

python-parso 패키지 다운 그레이드 (0.8.0-1 => 0.6.2-1)


1
나를 위해, 0.8.0 0.7.1로 다운 그레이드 트릭했다
CIsForCookies

1

현재 OSX에서 pip가 설치된 ipython은 탭 완성을 제공하지 않고 pyreadline release.py가 파열됩니다. .. what WFM :

easy_install ipython readline

YMMV.


1

StackOverflow의 다른 누군가가이 링크를 게시했습니다. http://www.vankouteren.eu/blog/2009/06/getting-ipython-readline-and-auto-completion-to-work-on-mac-os-x/

기본적으로 easy_install readlinereadline 달걀이 설치된 위치를 찾고이 readline을 사용하도록 ipython bin 스크립트를 편집하는 것입니다.

  1. "공식"readline을 설치하십시오 : easy_install readline
  2. 그것이 어디에 있는지 발견하십시오. 봐 /Library/Python/site-packages/readline-*.egg또는 VIRTUALENV 대응에
  3. ipython bin이 어디에 있는지 알아보십시오. which ipython
  4. 이 파일에 한 import sys줄을 추가하고 줄 바로 뒤에 readline 달걀 경로를 추가하십시오 .

내 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 __name__ == '__main__':
    sys.exit(
        load_entry_point('ipython==0.13.1', 'console_scripts', 'ipython')()
    )

1

나는 이것이 정말로 오래된 질문이라는 것을 알고 있지만 위의 답변 중 어느 것도 저에게 효과가 없었습니다 (그리고 이것은 이러한 성격의 질문을 Google에서 얻을 때 얻는 첫 번째 히트입니다).

이것은 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 패키지가없는 경우 링크하고 달걀을 빌드 할 때 설치가 실패합니다. 다른 사람들에게 도움이되기를 바랍니다!


0

Pyreadline은 ipython에 필요합니다. pyreadline을 설치하십시오. 이것은 Windows 7에서 수행되었습니다. pyreadline zip, pyreadline-master.zip , 압축을 풉니 다. powershell에서 디렉토리를 uzipped pyreadline으로 변경하고 python이 Path에 설정되어 있는지 확인하고 명령을 입력합니다. python setup.py install그러면 C : \ Python27 \ Lib \ site-packages에 pyreadline이 설치됩니다.


0

나는이 문제가 있었고 내가 찾고 있던 모듈에 pip가 설치되어 있다는 것을 알고있었습니다. 공연으로 $ ipython --init문제가 해결되었습니다.


0

나는 mv ~/.ipython{,.bak}내 경우에해야했다.


0

Jupyter 노트북을 사용하고 여기 게시물에 제안 된 모든 단계를 시도한 후에도 여전히 탭 자동 완성이 작동하는 경우 함수 정의 내에서 탭 자동 완성을 사용하려고하는지 확인할 수 있습니다. import 문이 아래와 같은 기능의 일부인 경우 탭 자동 완성 기능이 제공되지 않습니다. import 문을 함수 외부에두고 패키지에 대한 자동 완성을 요청하기 전에 한 번 실행해야합니다.

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

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

0

나는 numpy 라이브러리에서 같은 문제에 직면했습니다. 이 문제는 ipython 또는 jupyter 노트북의 특정 버전에 있으며 ipython 또는 jupyter를 업데이트하여 해결됩니다. anaconda 또는 miniconda와 같은 conda 환경을 사용하는 경우 다음을 사용하여 해당 환경에서 ipython을 업데이트하십시오.

conda update ipython

아나콘다의 경우 qtconsole도 업데이트해야합니다.

conda update qtconsole

때때로 아나콘다는 ipython 업데이트를 제한하고 시도하십시오.

conda update -all

환경을 사용하지 않는 경우 pip를 사용하여 직접 업데이트하십시오.

pip update ipython

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.