`ipython` टैब स्वतः पूर्ण आयातित मॉड्यूल पर काम नहीं करता है


82

IPython पर पूरा होने वाला टैब काम नहीं कर रहा है। उदाहरण के लिए,

import numpy
numpy.<tab>

बस एक टैब जोड़ता है।

import numpy
num<tab>

बस एक टैब भी जोड़ता है। क्या आप इस समस्या के कुछ संभावित कारणों का सुझाव दे सकते हैं? मैं विंडोज 7 और पायथन 2.6.5 चला रहा हूं।


1
नीचे दिए गए समाधान ने मेरे लिए काम किया - क्या यह आपके लिए काम करता है? यदि ऐसा है तो आपको स्वीकृत उत्तर को चिह्नित करना चाहिए।
बेकर

नीचे कुछ भी मेरे लिए काम नहीं किया। नवीनतम pyreadline है। अजगर 3.5 पर ज्यूपिटर नोटबुक चल रहा है।
माइकल स्ज़ेपेपैनिक

यदि यह काम कर रहा था और फिर कुछ यादृच्छिक कुंजियों को दबाने के बाद यह काम करना बंद कर देता है, तो जांचें कि क्या सेल का प्रकार गलती से "कोड" से बदलकर "मार्कडाउन" या "रॉ एनबीसीनवर्ट" की तरह हो गया था।
सोरिन पोस्टेलनिकु

यदि आप सिर्फ एक नया अजगर मॉड्यूल स्थापित करते हैं और ipython आयात को स्वत: पूर्ण नहीं करता है, तो यहां जाएं
ट्रेवर बॉयड स्मिथ

jedi0.17 से 0.18 तक का उन्नयन छोटी गाड़ी है और IPython टैब को पूरा करने में अक्षम करता है। नीचे दिए गए दिसंबर 2020 से जवाब देखें।
हाबिल चेउंग

जवाबों:


93

सुनिश्चित करें कि आपने pyreadline लाइब्रेरी स्थापित की है। यह टैब पूरा करने और अन्य IPython फ़ंक्शन के लिए आवश्यक है - विंडोज में यह IPython पैकेज के साथ नहीं आता है और आपको अलग से इंस्टॉल करना होगा -

> pip install pyreadline

1
@joaquin मैंने मैक का उपयोग करने के लिए इसे स्थापित करने की कोशिश की install gnureadline, लेकिन मैं तब भी टैब को पूरा करने में सक्षम नहीं हूं जब मैं कुछ ऐसा करता हूं numpy.<tab>। क्या आप जानते हैं कि ऐसा क्यों है?
theRealFakeNews

@AlanH क्षमा करें, मैक के बारे में कोई विचार नहीं है। शायद आपको एक नया, विशिष्ट प्रश्न खोलना चाहिए।
जौक्विन

1
FYI करें, अगर यह तुरंत काम नहीं कर रहा है (जो मेरे लिए मामला था), नया कंसोल शुरू करें।
अलबी

2
इंस्टॉल को प्रबंधित करने के लिए एनाकोंडा या मिनिकोंडा का उपयोग करने के लिए एक सिफारिश जोड़ना। मैंने अभी-अभी ipython ( conda install ipython) स्थापित किया है और इसमें कोई टैब पूरा होने की समस्या नहीं है। आप इसे पाइप के साथ समवर्ती रूप से उपयोग कर सकते हैं।
केनी

1
मुझे लगता है कि यह उत्तर तारीख से बाहर है, क्योंकि iPython संस्करण 5.0 के बाद से pyreadlines पर भरोसा नहीं करता है, और pyreadlines 2017 के बाद से विकसित नहीं हुआ है
ipython.org/pyreadline.html

19

यदि कोई व्यक्ति हाल ही में उपयोग कर रहा है 7.19.0और स्वतः पूर्ण काम नहीं करता है, तो उसे अपग्रेड jediकरने का प्रयास करें 0.17.2:

pip install jedi==0.17.2

देखें https://github.com/ipython/ipython/issues/12740 जानकारी के लिए।


यह जनवरी 2021 की यथास्थिति को दर्शाता है। parsoपैकेज को 0.7.1 तक डाउनग्रेड करने की आवश्यकता होगी।
हाबिल चेउंग

1
डाउनग्रेडिंग जेडी को 0.17.2 पर मेरे लिए काम किया
अगस्तो

7

आपकी ipythonrc फ़ाइल पुरानी हो सकती है। दौड़ने की कोशिश करो

ipython -upgrade

10
-upgradeझंडा अब समर्थित नहीं है।
jsmedmar 17

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


3

क्लासिक 'आपने इसे बंद करने की कोशिश की है और फिर से' मेरे लिए काम किया है।

pip uninstall ipython
pip install ipython

3

मुझे यह समस्या थी। मैंने अजगर-पार्सो पैकेज को डाउनग्रेड करके हल किया

अजगर-पार्स पैकेज को अपग्रेड करना (0.8.0-1 => 0.6.2-1)


1
मेरे लिए, 0.8.0 से 0.7.1 तक डाउनग्रेडिंग ने चाल
चली

1

अभी के अनुसार, OSX पर, पाइप स्थापित ipython टैब को पूरा नहीं करता है, pyreadline release.py का पर्दाफाश किया जाता है .. जिसे 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 readlineसे यह पता चलता है कि रीडलाइन अंडा कहाँ स्थापित हुआ और इस रीडलाइन का उपयोग करने के लिए ipython bin script को संपादित करें:

  1. "आधिकारिक" रीडलाइन स्थापित करें: easy_install readline
  2. पता चलता है कि वह कहां है। /Library/Python/site-packages/readline-*.eggअपने Virtualenv समकक्ष में देखें या
  3. पता है कि जहां ipython बिन है: which ipython
  4. इस फ़ाइल में वन लाइन जोड़ें, import sysलाइन के बाद रीडलाइन अंडे का रास्ता जोड़ते हुए ।

मेरी वर्चुअलाइज्ड 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')()
    )

1

मुझे लगता है कि यह वास्तव में एक पुराना सवाल है, लेकिन ऊपर दिए गए किसी भी उत्तर ने मेरे लिए काम नहीं किया (और यह पहली हिट है जब आप इस प्रकृति का सवाल पूछते हैं)।

मुझे यह उल्लेख करना चाहिए कि यह विंडोज़ के लिए अनन्य नहीं है, मुझे CentOS 6.5 और पायथन 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)

यदि आपके पास -वेल पैकेज नहीं हैं, तो उन्हें इंस्टॉल करने और अंडे बनाने का समय आने पर आपकी इंस्टॉल विफल हो जाएगी .. आशा है कि यह दूसरों की मदद करता है!


0

Pythline को ipython द्वारा आवश्यक है। Pyreadline स्थापित करें। यह विंडोज 7. में किया गया था pyreadline ज़िप, pyreadline-master.zip , unzip। Uzipped pyreadline में पावरशेल परिवर्तन निर्देशिका में, सुनिश्चित करें कि अजगर पथ में सेट है, और कमांड दर्ज करें python setup.py installयह C: \ Python27 \ Lib \ साइट-संकुल में pyreadline को रोक देगा


0

मुझे यह समस्या थी और मुझे पता था कि जिस मॉड्यूल को मैं देख रहा था, उसके लिए मेरे पास पाइप स्थापित था। प्रदर्शन करने से $ ipython --initमेरे लिए समस्या हल हो गई।



0

यदि आप Jupyter नोटबुक का उपयोग करते हैं और यहां पोस्ट में सुझाए गए सभी चरणों को आज़माने के बाद भी आप टैब ऑटो-पूर्ण काम कर रहे हैं, तो आप चेक कर सकते हैं कि क्या आप फ़ंक्शन परिभाषा के भीतर टैब ऑटो-पूर्णता का उपयोग करने का प्रयास कर रहे हैं। Ifyour आयात विवरण नीचे दिए गए फ़ंक्शन का हिस्सा हैं, आपको टैब ऑटो-पूर्ण नहीं मिलेगा। आपको फंक्शन के बाहर आयात स्टेटमेंट्स डालने की जरूरत है और पैकेजों पर ऑटो-पूर्ति करने से पहले एक बार उन्हें निष्पादित भी करना होगा।

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

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

0

मुझे उसी समस्या का सामना करना पड़ा जो कि खस्ताहाल पुस्तकालय के साथ थी। समस्या ipython या jupyter नोटबुक के विशेष संस्करण के साथ है और इसे केवल ipython या jupyter को अपडेट करके हल किया गया है। यदि आप एनाकोंडा या मिनिकॉन्डा जैसे कोंडा पर्यावरण का उपयोग कर रहे हैं तो उपयोग करके उस वातावरण में ipython को अपडेट करें

conda update ipython

एनाकोंडा के मामले में भी आपको qtconsole को अपडेट करना होगा

conda update qtconsole

कभी-कभी एनाकोंडा ipython के अपडेट को बाधित करता है तो प्रयास करें

conda update -all

यदि आप पर्यावरण का उपयोग नहीं कर रहे हैं तो सीधे पाइप का उपयोग करके अपडेट करें

pip update ipython

0

यह निश्चित रूप से काम करना चाहिए क्योंकि यह मेरे मामले में काम करता है

conda install ipython  
pip install jedi==0.17.2
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.