জেডি-ভিমে ব্যবহৃত পাইথন ইন্টারপ্রেটার কীভাবে পরিবর্তন করবেন


10

আমি Anaconda(পাইথন 3.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

সবাইকে ধন্যবাদ!

অথবা line / .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 হতে পারে। এটা বিপদজনক.
ডেভ হাল্টার

@ ডেভহ্যাল্টার যখন আপনি বলেছিলেন যে এটি একটি SEGFULT বাড়ে হতে পারে, আপনি কি উত্তরে প্রস্তাবিত বা পূর্ববর্তী মন্তব্যে প্রস্তাবিত কোনটি উল্লেখ করছেন? এছাড়াও, আপনি কি জানেন যে কেন একটি সেগফুল্ট হতে পারে?
জ্যাক কিনসেলা

1
@ জ্যাককিনসেলা পাইথন সংস্করণগুলি মিলিয়ে নেওয়া দরকার, অন্যথায় সংকলিত মডিউলগুলি আমদানি করা হলে আপনি বিভিন্ন সংস্করণ লোড করেন। তবে আমি আমার উত্তরটি নীচে আপডেট করেছি। জেদিতে এখন পরিবেশ রয়েছে যা এগুলি সহজেই সম্ভব করে তোলে।
ডেভ হাল্টার

4

আপনি পারবেন না। :pythonএবং :python3কমান্ড সবসময় ব্যবহার দোভাষী কম্পাইল-ইন। আপনার যদি ভিমের সাম্প্রতিক সংস্করণ থাকে pythonএবং / অথবা python3গতিশীলভাবে লোড করা হয় (দেখুন :h python-dynamic) আপনি ব্যবহার করতে পারেন pythondllএবং pythonthreedllবিভিন্ন ব্যাখ্যামূলক লোড করতে পারেন , তবে এনাকোন্ডার সিপিথনকে প্রতিস্থাপন করা আইএমও সেগফাল্টসের জন্য জিজ্ঞাসা করছে (শর্ত থাকে যে ভিম একে একে গ্রহণ করে, এটি)।


3

2018+ জেডি সংস্করণ

:let jedi#force_py_version=3.8উদাহরণস্বরূপ, আপনি সর্বশেষতম পাইথন সংস্করণে স্যুইচ করতে চাইলে আপনি কেবল ব্যবহার করতে পারেন। দুর্ভাগ্যক্রমে জেডি-ভিমে এখনও পরিবেশের তালিকা নেই। আমাদের এটি তৈরি করতে হবে (এটি জেডি তে পাওয়া যায়)।


পুরানো উত্তর

মূলত আপনি বর্তমানে যা করতে পারেন তা হ'ল পাইথন 3.5 সমর্থন সহ ভিআইএম সংকলন করা। এটি সম্ভবত একটি বোকা ধারণা, কিন্তু এটি কার্যকর।

অন্যথায় https://github.com/davidhalter/jedi/issues/385 সহ পাইথন সংস্করণগুলির জন্য সমর্থন থাকবে ।

দ্রষ্টব্য যে পাইথন পথের সংশোধন করা সম্ভব হতে পারে তবে এটি একটি সেগফুল্ট এবং অন্যান্য অযাচিত আচরণের দিকে পরিচালিত করতে পারে কারণ আপনি জেদীকে মূলত অন্য পাইথন সংস্করণ থেকে বাইনারি কোড চালানোর অনুমতি দিচ্ছেন (হ্যাঁ এটি আসলে ঘটে))


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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.