2013-02-05 13 views
8

मैंने emacs-jedi को emacs में पायथन के लिए कुछ कोड पूर्ण करने के लिए स्थापित किया। आम तौर पर, मुझे कहना होगा कि मैं बहुत प्रभावित हूं! यह बॉक्स से अच्छी तरह से काम करता है और निर्मित पुस्तकालयों के लिए जल्दी से पूर्णता पाता है। हालांकि, मैं वैज्ञानिक उद्देश्यों के लिए अजगर का उपयोग करता हूं और अपने काम के लिए सुस्त और भद्दा पर भरोसा करता हूं। किसी कारण से, मुझे इन मॉड्यूल के लिए कोई पूर्णता नहीं मिलती है।emacs-jedi को numpy पूर्णता नहीं मिली

उदाहरण:

import numpy 

testVector = numpy.array([1,2,3]) 

अब testVector टाइपिंग। और प्रतीक्षा, कुछ भी नहीं दिखाता

उत्तर

1

मैं इस तरह के मामले को पूरा कर सकता हूं।

enter image description here

निम्नलिखित की तरह आप पुराने आवश्यकता मॉड्यूल का उपयोग कर सकते (जेडी, ईपीसी, argparse)। आपको उन्हें अपडेट करना चाहिए और पुनः प्रयास करना चाहिए।

+0

भले ही एपीसी और जेडीआई जहां एएमएसी-जेडीआई स्थापित करते समय स्वचालित रूप से इंस्टॉल हो जाएं, मैंने उन फ़ोल्डर्स में एक गिट खींच लिया ताकि यह सुनिश्चित किया जा सके कि मेरे पास नवीनतम संस्करण है। मैंने सूडो पाइप इंस्टॉल किया है Argparse - अपग्रेड जिसने मुझे बताया कि मेरे पास पहले से ही Argparse का नवीनतम संस्करण है। तो निर्भरता अद्यतित लगती है, लेकिन मुझे अभी भी numpy या scpipy के लिए पूरा नहीं मिलता है। – mike

+0

हम्म, मैं एपीसी 0.0.3 और जेडी 0.5b5 का उपयोग करता हूं। कृपया अपना एपीसी, जेडीआई संस्करण देखें। – syohex

5

मुझे आश्चर्य है कि यह क्यों काम नहीं करता है। यह sys.path समस्या जैसा दिखता है लेकिन इसे बिना किसी कॉन्फ़िगरेशन के काम करना चाहिए। लेकिन यहां एक ब्रूट फोर्स फिक्स के लिए कुछ विचार है।

(1) numpy के लिए लोड पथ प्राप्त करने के लिए निम्न स्क्रिप्ट चलाएं।

import os 
import numpy 
print(os.path.dirname(os.path.dirname(numpy.__file__))) 

(2) jedi:server-args इस तरह सेट करें जबरदस्ती पथ जोड़ने के लिए।

(setq jedi:server-args 
     '("--sys-path" "THE/PRINTED/PATH/FOR/NUMPY" 
     "--sys-path" "THE/PRINTED/PATH/FOR/SCIPY")) 

यह भी देखें: http://tkf.github.com/emacs-jedi/#jedi:server-args


संपादित करें 1

@ syohex के जवाब पर अपनी टिप्पणी पढ़ना, यह है कि आपने कुछ स्थापना के तरीकों को मिलाया लग रहा है। jeid.el निर्देशिका में virtualenv "env /" का उपयोग करता है जिसमें आपके पास jedi.el है, यदि यह मौजूद है। यदि आपके पास virtualenv है तो el-get स्वचालित रूप से "env /" बनाता है। इसलिए, यदि आप प्रणाली की स्थापना की तरह, आप Jedi.el बताने के लिए ऐसा करके "evn /" उपेक्षा की जरूरत है:

(require 'jedi) 
(setq jedi:server-command (list "python" jedi:server-script)) 

यह भी देखें: http://tkf.github.com/emacs-jedi/#jedi:server-command


संपादित 2

मुझे कोई जानकारी नहीं है कि यह आपके विवरण से क्यों हो रहा है। समस्या को कम करने के कई तरीके यहां दिए गए हैं।

  1. निर्देशिका में भागो make tryout जिसमें jedi.el स्थापित किया गया है (जैसे ~/.emacs.d/el-get/jedi/)।

    यह एक साफ खुलता है (यानी, यह आपके सेटअप को नहीं पढ़ता है) jaci.el के लिए न्यूनतम सेटअप के साथ Emacs प्रक्रिया। चलो देखते हैं कि आप numpy और scipy पूरा कर सकते हैं।

  2. क्या आप Emacs में numpy और scipy आयात कर सकते हैं? आप Emacs और खोल में विभिन्न पर्यावरण चर हो सकता है। M-! python -c 'import numpy' RET चलाएं। यदि यह आपको कोई त्रुटि नहीं देता है, तो यह ठीक है।

  3. क्या आप env/bin/python का उपयोग करके numpy और scipy आयात कर सकते हैं? ऐसा करने का सबसे अच्छा तरीका यह है Emacs से जांचना।

    तो पहले निर्देशिका में जाएं जिसमें jedi.el स्थापित है (उदा।, C-x C-f ~/.emacs.d/el-get/jedi/ RET)।

    फिर M-! env/bin/python -c 'import numpy' RET चलाएं। यदि यह आपको कोई त्रुटि नहीं देता है, तो यह numpy और scipy आयात करना संभव होना चाहिए।

मुझे आशा है कि उनमें से कम से कम एक आपको त्रुटि देगा, अन्यथा मुझे एक और संभावना के बारे में सोचना होगा।

+0

मैं जेडीआई के बाद जेडीई शुरू करने के बाद ही ऐसा करने का प्रबंधन करता हूं: सर्वर-कमांड इससे पहले शून्य है, इसलिए जेडीआई: सर्वर-स्क्रिप्ट है। मैंने इसे एक पायथन-मोड हुक में डालने की कोशिश की ताकि यह केवल जेडीआई के बाद चलाया जा सके: सेटअप, लेकिन शून्य चर त्रुटियों को प्राप्त करना जारी रखें। मुझे नहीं लगता कि मैंने किसी भी स्थापना विधियों को मिश्रित किया है - मैंने एल-ठीक से इंस्टॉलेशन के लिए निर्देशों का पालन किया है। – mike

+0

स्पष्टीकरण: मैंने पहले वर्णन किए गए numpy पथ को शामिल करने के लिए मजबूर करने की कोशिश की। उसने कुछ भी नहीं बदला, अभी भी कोई पूरा नहीं हुआ। – mike

+0

'जेडीआई: सर्वर-स्क्रिप्ट' का उपयोग करने से पहले बस '(' jedi की आवश्यकता है) 'पर कॉल करें। यदि आप चाहें तो इसे पायथन-मोड-हुक में कॉल कर सकते हैं। – tkf

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