Автозаполнение вкладки "ipython" не работает на импортированном модуле

Выполнение вкладок на IPython, похоже, не работает. Например,

import numpy
numpy.<tab>

просто добавляет вкладку.

import numpy
num<tab>

просто добавляет вкладку. Не могли бы вы предложить некоторые возможные причины этой проблемы? Я запускаю Windows 7 и Python 2.6.5.

Ответ 1

Убедитесь, что вы установили библиотеку pyreadline. Это необходимо для завершения вкладки и других функций IPython - в Windows он не поставляется с пакетом IPython, и вам нужно установить его отдельно -

> pip install pyreadline

Ответ 2

Ваш файл ipythonrc может быть устаревшим. Попробуйте запустить

ipython -upgrade

Ответ 3

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

Классический "вы пытались отключить его и снова" работал у меня.

pip uninstall ipython
pip install ipython

Ответ 5

Как сейчас, на OSX, pip, установленный ipython, не дает завершения вкладки, pyreadline release.py выгружается.. что WFM:

easy_install ipython readline

YMMV.

Ответ 6

Кто-то еще в StackOverflow отправил эту ссылку: http://www.vankouteren.eu/blog/2009/06/getting-ipython-readline-and-auto-completion-to-work-on-mac-os-x/

В основном это easy_install readline, чем обнаружение, когда яйцо readline было установлено и отредактировано бифурка ipython script, чтобы использовать этот readline:

  • Установите "официальный" readline: easy_install readline
  • Узнайте, где это. Посмотрите /Library/Python/site-packages/readline-*.egg или в своем экземпляре Virtualenv
  • Узнайте, где находится ipython bin: which ipython
  • Добавьте в этот файл ONE LINE, добавив путь яиц readline прямо после строки import sys.

Мой virtualenved ipython bin script работал следующим образом:

#!/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')()
    )

Ответ 7

Я понимаю, что это действительно старый вопрос, но ни один из ответов выше не работал у меня (И это первый удар, который вы получаете, когда у вас есть вопрос такого характера).

Я должен упомянуть, что это НЕ исключительно для окон, у меня была проблема с запуском 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, ваша установка не удастся, когда придет время связать их и построить яйца.. Надеюсь, это поможет другим!

Ответ 8

Pyreadline требуется ipython. Установите pyreadline. Это было сделано в Windows 7. Получите pyreadline zip, pyreadline-master.zip, разархивируйте. В powershell смените каталог на uzipped pyreadline, убедитесь, что python установлен в Путь, и введите команду python setup.py install Это будет intall pyreadline в C:\Python27\Lib\site-packages

Ответ 9

У меня была эта проблема, и я знал, что у меня установлен протокол для модуля, который я искал. Выполнение $ ipython --init решило проблему для меня.

Ответ 10

Мне пришлось mv ~/.ipython{,.bak} в моем случае.

Ответ 11

Если вы используете ноутбук Jupyter, и вы все равно получили автоматическую заполнение вкладки Tab, после того, как вы попробовали все шаги, предлагаемые в этом сообщении, вы можете проверить, не пытаетесь ли вы использовать автоматическое заполнение вкладки в определении функции, Операторы импорта ifyour являются частью функции, такой как ниже, вы не получите автоматическое завершение Tab. Вам нужно поместить операторы импорта за пределы функции, а также выполнить их один раз, прежде чем запрашивать автозаполнение пакетов.

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

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

Ответ 12

Понижение iPython сделало свое дело.

pip install --upgrade ipython==5.8.0