2010-08-14 31 views
23

अगर कोई व्याख्या कर सकते हैं अजगर इंटरैक्टिव मोड में अचानक सभी तीर कुंजी क्यों असफल रहे हैं मैं सोच रहा था?अजगर इंटरैक्टिव मोड इतिहास और तीर कुंजी

जब मैं उदाहरण के आदेश इतिहास के माध्यम से जाने के लिए बटन दबाएँ मैं "^ [[ए '। किसी भी अन्य तीर कुंजियों के साथ ही।

मैं ऐसा होने और यह पहले काम कर रहा था (पर OS X Snow Leopard) पता नहीं है। क्या किसी को इसे ठीक करने का कोई तरीका पता है?

बहुत धन्यवाद,

जी

उत्तर

6

आप यह नहीं कहते कि आप किस पायथन का उपयोग कर रहे हैं लेकिन आपके द्वारा वर्णित लक्षण वास्तव में पाइथन के कारण readline समर्थन के साथ निर्मित नहीं होते हैं। इन दिनों ओएस एक्स पर अजगर या तो जीएनयू readline पुस्तकालय या एप्पल की आपूर्ति editline पुस्तकालय (उर्फ libedit) का उपयोग करने के लिए बनाया जा सकता है। आप निम्न दो आदेशों का उपयोग यह दिखाने के लिए कर सकते हैं कि आप किस पायथन का उपयोग कर रहे हैं। यदि यह पता लगाने में आपकी सहायता नहीं करता है कि क्या हो रहा है, तो उन आदेशों से आउटपुट दिखाने के लिए अपना प्रश्न संपादित करें।

यहाँ एक उदाहरण है कि ओएस एक्स 10.6 पर हाल ही में MacPorts अजगर 2.6 से पता चलता है:

$ python -c 'import sys;print(sys.version);print(sys.executable)' 
2.6.5 (r265:79063, Jul 15 2010, 01:53:46) 
[GCC 4.2.1 (Apple Inc. build 5659)] 
/opt/local/Library/Frameworks/Python.framework/Versions/2.6/Resources/Python.app/Contents/MacOS/Python 

$ otool -L $(python -c 'import readline; print(readline.__file__)') 
/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload/readline.so: 
    /opt/local/lib/libreadline.6.1.dylib (compatibility version 6.0.0, current version 6.1.0) 
    /opt/local/lib/libncursesw.5.dylib (compatibility version 5.0.0, current version 5.0.0) 
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.0) 

पथ का प्रारंभिक भाग /opt/local/ और MacPorts से स्थापित सॉफ्टवेयर के लिए डिफ़ॉल्ट स्थान otool से उत्पादन होता है इंगित करता है कि इस अजगर के readline मॉड्यूल गतिशील रूप से मैकपॉर्ट्स-स्थापित जीएनयू readline लाइब्रेरी से जुड़ा हुआ है।

+0

पायथन रीडलाइन मॉड्यूल को देखने का संकेत उपयोगी था। जाहिर है, मेरा वास्तव में * नहीं था * 'libreadline' से जुड़ा हुआ था। मुझे नहीं पता क्यों नहीं, हालांकि चूंकि रीडलाइन बस ठीक स्थापित किया गया था। वैसे भी, 'पोर्ट-एफ अनइंस्टॉल py27-readline; बंदरगाह स्थापित py27-readline 'इसे तय किया। – Celada

5

यह व्यवहार आमतौर पर आपको दिखाता है कि readline का समर्थन नहीं है जब। यदि आप मैकपॉर्ट्स का उपयोग कर रहे हैं, तो port install readline आज़माएं, देखें कि यह ठीक करेगा या नहीं। कुछ और स्पष्टीकरण के लिए आप this page भी देख सकते हैं।

(इसके अलावा उपयोगी जानकारी: यदि कुछ कार्यक्रमों readline का उपयोग नहीं करते भी सिस्टम पर मौजूद है, तो आप rlwrap (port install rlwrap का उपयोग करके उन पर यह मजबूर कर सकते हैं) उदाहरण के लिए:।। rlwrap ocaml -init code.ml OCaml से प्रारंभ हो जाएगा, code.ml पढ़ा है, और रीडलाइन समर्थन के साथ आरईपीएल शुरू करें)

+0

की कोशिश की ReadLine स्थापित करने के लिए तय हो गई है, लेकिन यह नहीं था ' टी मदद फिर भी धन्यवाद। खुदाई रखेंगे। – givp

+1

rlwrap कामकाज के रूप में काम किया था। धन्यवाद! –

+0

यह मेरे लिए भी काम करता है। यह, अजगर के pdb के साथ काम rlwrap स्थापित करने के लिए प्राप्त करने के लिए ('बंदरगाह rlwrap' स्थापित), तो आदेश' rlwrap python' साथ अजगर का शुभारंभ। तर्क पारित करने के लिए rlwrap के लिए मैन पेज देखें, आदि – Dannid

13

मैं अंत में यह काम कर गया। मुझे बस easy_install और कर्सर के साथ रीडलाइन स्थापित करना पड़ा और बैकस्पेस जादुई रूप से काम करना शुरू कर दिया।

sudo /opt/local/bin/easy_install-2.5 readline 
+1

easy_install readline trik किया था।धन्यवाद @mikael – gnuyoga

+1

'apt-get libncurses5-dev && pip इंस्टॉल करें रीडलाइन'' संस्करण मेरे यूबंटू (ट्रस्टी पर आधार) – vaab

+3

'पीआईपी इंस्टॉल रीडलाइन' पर काम करता था, मुझे बस इतना ही चाहिए। – maxko87

15

आप homebrew का उपयोग कर रहे हैं, तो यह एक आसान ठीक है:

 
brew uninstall python 
brew uninstall readline 
brew install readline --universal 
brew install python 

कि यह मेरे (चल ओएस एक्स मावेरिक्स 10.9.5)

+2

लिखने की आवश्यकता है, मुझे अभी OSX 10.10.1 के लिए python3 में काम करने वाली रीडलाइन मिल गई है। मुझे अंतिम लाइन को 'ब्रू इंस्टॉल करें - रीडलाइन - फ्रेमवर्कवर्क' में बदलना पड़ा और फिर मुझे निम्नलिखित करना पड़ा: (1) मेरे पाथ में '/ usr/local/share/python' जोड़ें। (2) 'pip3.4 रीडलाइन स्थापित करें '। तब मैंने टाइप किया 'पायथन 3' और रीडलाइन फिर से काम कर रहा था। –

+0

क्या यह पाइथन 2.7.10 के कुछ अन्य संस्करण के साथ सिस्टम पायथन 2.7.10 को प्रतिस्थापित करने जा रहा है? – user5359531

+0

@ user5359531 सिस्टम पायथन को प्रतिस्थापित नहीं किया जाएगा, लेकिन यदि आप पहले से ही 'पायथन इंस्टॉल करें' बना चुके हैं तो आप इस प्रक्रिया का पालन करते हैं, ब्रू _its_ संस्करण को नए के साथ बदल सकता है। जांचें: 'कौन सा पायथन', (रिपोर्ट ब्रू का संस्करण/usr/local/bin/python पर है), ब्रू अनलिंक पायथन && कौन सा पायथन 'सिस्टम संस्करण रिपोर्ट करता है, ब्रू संस्करण को पुनर्स्थापित करने के लिए' ब्रू लिंक पायथन '। यह विनाशकारी नहीं है। – ptim

संबंधित मुद्दे