अधिकांश तीसरे पुस्तकालयों को बॉक्स से बाहर काम करना चाहिए, Django स्वत: पूर्णता के साथ इतना अच्छा नहीं है, आपको अपने पर्यावरण में परिवर्तनीय DJANGO_SETTINGS
सेट होना चाहिए, अन्यथा अधिकांश आयात अनुचित रूप से कॉन्फ़िगर किए गए अपवाद को बढ़ाएंगे और स्वत: पूर्णता काम नहीं करेगी ।
आप में virtualenv आप इस चर सेट कर सकते हैं, या अपने खोल में एक उपनाम, या कुछ इस तरह का उपयोग कर अपने .vimrc
में साथ:
function FindDjangoSettings()
if strlen($VIRTUAL_ENV) && has('python')
let output = system("find $VIRTUAL_ENV \\(-wholename '*/lib/*' -or -wholename '*/install/' \\) -or \\(-name 'settings.py' -print0 \\) | tr '\n' ' '")
let outarray= split(output, '[\/]\+')
let module = outarray[-2] . '.' . 'settings'
let syspath = system("python -c 'import sys; print sys.path' | tr '\n' ' ' ")
" let curpath = '/' . join(outarray[:-2], '/')
execute 'python import sys, os'
" execute 'python sys.path.append("' . curpath . '")'
" execute 'python sys.path.append("' . syspath . '")'
execute 'python sys.path = ' . syspath
execute 'python os.environ.setdefault("DJANGO_SETTINGS_MODULE", "' . module . '")'
endif
endfunction
autocmd FileType python call FindDjangoSettings()
मतलब यह है कि आप अपनी परियोजनाओं के लिए virtualenv
उपयोग कर रहे हैं, और हो सकता है अगर आप किसी ऐसे वर्चुअलनेव का उपयोग कर रहे हैं जो django नहीं है तो आपको परेशान करें।
मैं आपको you complete me plugin में एक नज़र डालने की भी सलाह देता हूं, यह एक शानदार पूर्ण प्लगइन है, यह जेडीई के प्रतिस्थापन नहीं है, वास्तव में, इसमें जेडई पाइथन पूर्ण होने की निर्भरता है।
स्रोत
2013-11-11 01:27:32
कृपया 'omnifunc' सेट करें और 'संदेश' –
शायद प्रासंगिक: http://stackoverflow.com/questions/2084875/vims-omnicompletion-with-python-just-doesnt-work। संक्षेप में, जांचें कि ': py print (sys.path)' दिखाता है। – Yosh