jedi-vim द्वारा उपयोग किए जाने वाले अजगर इंटरप्रेटर को कैसे बदलें


10

मेरे पास Anaconda(python3.5.2 सहित), VIM(7.4) और Jedi-VIMमेरे सिस्टम पर स्थापित है। pythonडिफ़ॉल्ट रूप से लिनक्स सिस्टम पर भी स्थापित किया गया था ।

स्वतः पूर्णता कम से कम बेस पैकेज पर काम कर रही है। लेकिन जैसे पैकेज numpy(जिसमें शामिल किया गया था Anaconda) पूरा नहीं हो रहा है।

निम्नलिखित कमांड का उपयोग करके VIM:

:py3 import sys; print(sys.path)

['/usr/lib/python35.zip', 
'/usr/lib/python3.5', 
'/usr/lib/python3.5/plat-x86_64-linux-gnu', 
'/usr/lib/python3.5/lib-dynload', 
'/usr/local/lib/python3.5/dist-packages', 
'/usr/lib/python3/dist-packages', 
'_vim_path_']

यह मुझे इंगित करता है कि Anaconda-pythonदुभाषिया और संकुल का उपयोग कभी नहीं किया गया है jedi-vim

$which python
/home/user1/anaconda3/bin/python

पैकेज ऑटोकंप्लीशन प्राप्त करने के लिए एनाकोंडा पायथन के मार्ग का उपयोग करने के लिए मैं जेडी-विम कैसे प्राप्त कर सकता हूं?

जवाबों:


8

मैं jedi-vimअपने anacondaफ़ोल्डर में पैकेजों के स्थान के साथ $PYTHONPATHचर का उपयोग करके इसे स्वयं ठीक करने में सक्षम था :

export PYTHONPATH=$PYTHONPATH:/home/user1/anaconda3/lib/python3.5/site-packages

सभी को धन्यवाद!

या ~ / .bash_profile में निम्नलिखित पंक्ति जोड़ें

export PYTHONPATH=$PYTHONPATH:/home/user1/anaconda3/lib/python3.5/site-packages


धन्यवाद! एनाकोंडा के साथ सही ढंग से काम करने के export PYTHONPATH="/home/user-name/anaconda3/lib/python3.5/site-packages":$PYTHONPATHलिए मेरे ~/.zshrcजेदी-विम को जोड़ना ।
joelostblom

5
यदि आप ऐसा नहीं करना चाहिए। यह एक SEGFAULT को जन्म दे सकता है। यह खतरनाक है।
डेव हाल्टर

@DaveHalter जब आपने कहा कि यह एक SEGFAULT को जन्म दे सकता है, तो क्या आप इस बात का उल्लेख कर रहे थे कि उत्तर में क्या प्रस्तावित किया गया था या पिछली टिप्पणी में क्या प्रस्तावित किया गया था? इसके अलावा, क्या आप जानते हैं कि एक SEGFAULT क्यों हो सकता है?
जैक किन्सेला

1
@JackKinsella पायथन संस्करणों को मिलान करने की आवश्यकता होती है, अन्यथा जब संकलित मॉड्यूल आयात किए जाते हैं तो आप विभिन्न संस्करणों को लोड करते हैं। हालाँकि मैंने नीचे अपना उत्तर अपडेट कर दिया है। जेडी में अब वातावरण हैं, जो यह सब आसानी से संभव बनाता है।
डेव हाल्टर

4

आप नहीं कर सकते। :pythonऔर :python3आदेशों हमेशा उपयोग दुभाषिए संकलित-इन। यदि आपके पास Vim का हाल का संस्करण है pythonऔर / या python3गतिशील रूप से लोड किया गया है (देखें :h python-dynamic) तो आप उपयोग कर सकते हैं pythondllऔर pythonthreedllअलग-अलग दुभाषियों को लोड कर सकते हैं , लेकिन एनाकोंडा द्वारा CPython की जगह IMO segfaults के लिए पूछ रहा है (बशर्ते कि विम इसे सभी को स्वीकार करता है, वह है)।


3

2018+ जेडी संस्करण

आप :let jedi#force_py_version=3.8उदाहरण के लिए नवीनतम पायथन संस्करण में स्विच करना चाहते हैं, तो आप इसका उपयोग कर सकते हैं । दुर्भाग्य से जेडी-विम में अभी तक कोई पर्यावरण सूचीकरण नहीं हुआ है। हमें इसे बनाने की जरूरत है (यह जेडी में उपलब्ध है, हालांकि)।


पुराना उत्तर

मूल रूप से केवल एक चीज जो आप वर्तमान में कर सकते हैं वह है वीआईएम को पायथन 3.5 समर्थन के साथ संकलित करना। यह शायद एक बेवकूफ विचार है, लेकिन यह काम करता है।

अन्यथा https://github.com/davidhalter/jedi/issues/385 के साथ, क्रॉस पायथन संस्करणों के लिए समर्थन होगा ।

ध्यान दें कि यह संभव हो सकता है कि पायथन पैट को संशोधित किया जाए, लेकिन इससे एक SEGFAULT और अन्य अवांछित व्यवहार हो सकता है, क्योंकि आप मूल रूप से जेडी को एक और पायथन संस्करण से बाइनरी कोड चलाने की अनुमति दे रहे हैं (हाँ यह वास्तव में होता है)।


1

आप एनाकोंडा के साथ विम संकलित कर सकते हैं: मैंने किया था ./configure --with-features=huge --enable-pythoninterp --with-python-config-dir=~/anaconda/lib/python2.7/config/, मुझे याद है कि मैंने बाद में इसी तरह के परीक्षण किए थे और :py import sys; print sys.pathमुझे सही परिणाम दे रहे थे।

वेब खोज के आधार पर आप शायद ऐसा कुछ कर सकते हैं (उदाहरण के लिए 3.4):

./configure --enable-python3interp --with-features=huge --with-python3-config-dir=~/anaconda/lib/python3.4/config-3.4m-x86_64-linux-gnu


1

डेविड के पास पाइथन के विभिन्न स्वादों के साथ वीम को इंटरलेमिंग करने के बारे में एक वैध बिंदु है और यदि PYTHONPATHएनाकोंडा पायथन को .profile/ .bashrcवास्तव में सेग्मेंट करने के लिए मुश्किल है तो 11 सेगमेंट एक शेल उर्फ ​​का उपयोग कर सकता है।

alias vim3='PYTHONPATH=/usr/lib/Anaonda/.../site-packages vim'

शायद यह काम-आस-पास पर्याप्त होगा।


1

मैं अन्य एक्सटेंशन के साथ संगतता के लिए 32 बिट विम का उपयोग कर रहा हूं, लेकिन 64 बिट अजगर अन्य कारणों के लिए पहले मेरे पेट पर है। इसलिए मैंने कोंडा का उपयोग करके 32 बिट अजगर स्थापित किया :

set CONDA_FORCE_32BIT=1
conda create -n py27_32bit python=2.7
activate py27_32bit
pip install jedi
deactivate

और यह मेरे लिए जोड़ा गया .vimrc:

if has('win32')&& isdirectory('C:/Users/USER/AppData/Local/Continuum/anaconda2/envs/py27_32bit/')
    let $PATH = 'C:/Users/USER/AppData/Local/Continuum/anaconda2/envs/py27_32bit/;
                \C:/Users/USER/AppData/Local/Continuum/anaconda2/envs/py27_32bit/lib/;' . $PATH
    let $PYTHONPATH = 'C:/Users/USER/AppData/Local/Continuum/anaconda2/envs/py27_32bit/;
                \C:/Users/USER/AppData/Local/Continuum/anaconda2/envs/py27_32bit/DLLs/;
                \:/Users/USER/AppData/Local/Continuum/anaconda2/envs/py27_32bit/lib/;' 
endif 

C:/Users/USER/AppData/Local/Continuum/anaconda2कॉल करने का परिणाम कहां हैconda info --base

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