python - आईपीथन टैब पूरा नहीं हो रहा है




ipython tab-completion (8)

आईपीथॉन पर टैब पूर्णता काम नहीं कर रही है। उदाहरण के लिए,

import numpy
numpy.<tab>

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

import numpy
num<tab>

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


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


अभी के रूप में, एक ओएसएक्स पर, पाइप स्थापित आईपीथॉन टैब पूर्ण नहीं देता है, pyreadline release.py busted .. क्या डब्ल्यूएफएम:

easy_install ipython readline

YMMV।


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

pip uninstall ipython
pip install ipython

मुझे अपने मामले में mv ~/.ipython{,.bak} करना पड़ा।


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


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

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

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

स्टैक ओवरव्लो में किसी और ने इस लिंक को पोस्ट किया: http://www.vankouteren.eu/blog/2009/06/getting-ipython-readline-and-auto-completion-to-work-on-mac-os-x/

इसकी easy_install readline का उपयोग करने के लिए रीडलाइन अंडे स्थापित होने और आईपीथॉन बिन स्क्रिप्ट को संपादित करने के बजाय इसकी मूल रूप से आसान-स्थापना रीडलाइन:

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

मेरा वर्चुअलाइज्ड ipython बिन स्क्रिप्ट का पालन करने के रूप में काम कर रहा है:

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

pip ने मुझे बताया कि मेरे पास pyreadline संस्करण 1.7.1 स्थापित है

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

pyreadline अपग्रेड pyreadline मेरे लिए तय किया गया है:

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

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




tab-completion