আমি কীভাবে উইন্ডোজটিতে পাইথন প্লাগইন ব্যবহার করব?


9

আমি পাইথন ২.7.১১ এবং পাইথন ৩.৩.১ (উভয় ৩২-বিট) সহ উইন্ডোজ 64৪-বিট ইনস্টল করেছি এবং আমি পাইথন / ডাইন এবং পাইথন ৩ / ডিন দিয়ে ভিম সংকলন করেছি, তবে আমি নিম্নলিখিত ত্রুটিটি পেয়ে চলেছি:

:py print "hello"
E887: Sorry, this command is disabled, the Python's site module could not be loaded

তবে, নিম্নলিখিত সমস্ত কাজ ঠিক আছে:

C:\python27\python -c "import site;"

এবং

:py3 print("hello")

এটি আমার ভিম সংস্করণ তথ্য:

VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Jan 29 2016 11:58:41)
MS-Windows 32-bit console version
Included patches: 1-1194
Compiled by afontaine@PHOENIX
Huge version without GUI.  Features included (+) or not (-):
+acl                +eval               -mouseshape         +tag_old_static
+arabic             +ex_extra           +multi_byte_ime/dyn -tag_any_white
+autocmd            +extra_search       +multi_lang         -tcl
-balloon_eval       +farsi              -mzscheme           -tgetent
-browse             +file_in_path       -netbeans_intg      -termresponse
++builtin_terms     +find_in_path       +path_extra         +textobjects
+byte_offset        +float              -perl               +title
-channel            +folding            +persistent_undo    -toolbar
+cindent            -footer             -postscript         +user_commands
+clientserver       +gettext/dyn        +printer            +vertsplit
+clipboard          -hangul_input       +profile            +virtualedit
+cmdline_compl      +iconv/dyn          +python/dyn         +visual
+cmdline_hist       +insert_expand      +python3/dyn        +visualextra
+cmdline_info       +jumplist           +quickfix           +viminfo
+comments           +keymap             +reltime            +vreplace
+conceal            +langmap            +rightleft          +wildignore
+cryptv             +libcall            -ruby               +wildmenu
+cscope             +linebreak          +scrollbind         +windows
+cursorbind         +lispindent         +signs              +writebackup
+cursorshape        +listcmds           +smartindent        -xfontset
+dialog_con         +localmap           -sniff              -xim
+diff               -lua                +startuptime        -xterm_save
+digraphs           +menu               +statusline         -xpm_w32
-dnd                +mksession          -sun_workshop       
-ebcdic             +modify_fname       +syntax             
+emacs_tags         +mouse              +tag_binary
Compilation: gcc -Iproto -DWIN32 -DWINVER=0x0500 -D_WIN32_WINNT=0x0500 -DHAVE_PATHDEF -DFEAT_HUGE -DHAVE_GETTEXT -DHAVE_LOCALE_H -DDYNAMIC_GETTEXT -DFEAT_CSCOPE -DFEAT_NETBEANS_INTG -DFEAT_CHANNEL -DFEAT_GUI_W32 -DFEAT_CLIPBOARD -DFEAT_MBYTE -DFEAT_MBYTE_IME -DDYNAMIC_IME -DDYNAMIC_ICONV -pipe -w -march=i386 -Wall -DFEAT_PYTHON  -DDYNAMIC_PYTHON -DDYNAMIC_PYTHON_DLL="python27.dll" -DFEAT_PYTHON3  -DDYNAMIC_PYTHON3 -DDYNAMIC_PYTHON3_DLL="python35.dll" -DFEAT_XPM_W32 -I xpm/x86/include -I xpm/x86/../include -O3 -fomit-frame-pointer -freg-struct-return -s
Linking: gcc -Iproto -DWIN32 -DWINVER=0x0500 -D_WIN32_WINNT=0x0500 -DHAVE_PATHDEF -DFEAT_HUGE -DHAVE_GETTEXT -DHAVE_LOCALE_H -DDYNAMIC_GETTEXT -DFEAT_CSCOPE -DFEAT_NETBEANS_INTG -DFEAT_CHANNEL -DFEAT_GUI_W32 -DFEAT_CLIPBOARD -DFEAT_MBYTE -DFEAT_MBYTE_IME -DDYNAMIC_IME -DDYNAMIC_ICONV -pipe -w -march=i386 -Wall -DFEAT_PYTHON  -DDYNAMIC_PYTHON -DDYNAMIC_PYTHON_DLL="python27.dll" -DFEAT_PYTHON3  -DDYNAMIC_PYTHON3 -DDYNAMIC_PYTHON3_DLL="python35.dll" -DFEAT_XPM_W32 -I xpm/x86/include -I xpm/x86/../include -O3 -fomit-frame-pointer -freg-struct-return -s -mwindows -o gvim.exe -lkernel32 -luser32 -lgdi32 -ladvapi32 -lcomdlg32 -lcomctl32 -lversion -lwsock32 -Lxpm/x86/lib -lXpm -lole32 -luuid      

আর where python27.dllআউটপুটC:\Windows\System32

আমি এই গুগল গ্রুপ পোস্ট থেকে পরামর্শ চেষ্টা করেছি , কিন্তু কোন ফলসই না।

আমি কেবলই চাই যে আপনার কমপ্লিটম সফলভাবে চলছে।


:help python-dynamicবলেছেন...To use the Python interface the Python DLL must be in your search path. In a console window type "path" to see what directories are used.
অ্যালেক্স ক্রোল

এটা ওইখানে. :!where python27.dllআয় C:\Windows\System32\python27.dll। এছাড়াও মনে রাখবেন যদি গ্রন্থাগার অনুপস্থিত, একটি ভিন্ন ত্রুটি দেখা দেয়: E370: Could not load library python27.dllএবংE263: Sorry, this command is disabled, the Python library could not be loaded.
afontaine

আহা। আমি দেখি. :py3কাজ করে কিন্তু :pyকরবে না? :py3ভিএম লঞ্চ চলাকালীন কোনও একটি প্লাগইন কার্যকর করলে এটি সম্ভব । :he python-2-and-3কীভাবে পাইথন / ডায়ন এবং পাইথন 3 / ডিন একসাথে কাজ করে তা বোঝার জন্য দেখুন ...
অ্যালেক্স ক্রোল

দেখে মনে হচ্ছে 2.7.9 এর জন্য 2.7.11 কে অদলবদল করে। অদ্ভুত যদিও।
পূর্বে

উত্তর:


7

ঠিক আছে, দৃশ্যত রাষ্ট্রটি হ'ল: উইন্ডোজে ভিআইএম পাইথনকে সমর্থন করে 2.7.9, না 2.7.11। এটি সাথে কাজ করতে পারে 2.7.10, আমি এটি পরীক্ষা করিনি।

যদিও আমি একটি রেফারেন্স সঙ্গে Windows এ VIM কম্পাইল 2.7.11ডিএলএল, এটা হঠাৎ কাজ যখন আমি বাইরে সোয়াপিং চেষ্টা 2.7.11জন্য2.7.9

আমি নিশ্চিত না যে আমি কিছু ভুল করেছি কিনা 2.7.11, এবং এটি আসলে কাজ করে, তবে আমার তা জানার সময় নেই।


3
২.7.১১ এর জন্য এটি পাইথন বাগের কারণে ঘটেছিল,
এটির

3

সুতরাং আমার উইন্ডোজ 10 এ আমার খুব অনুরূপ সমস্যা ছিল তবে bit৪ বিট ভিএম এবং পাইথনের জন্য।

টি এল; ডিআর

সমস্যাটি আমার ক্ষেত্রে আপনার কমপ্লেসমেন্টের সাথে কিছুই করার নেই। ধরুন, ওয়াইসিএম পাইথন ৩ এর সাথে সম্মতি জানায় V পাইথন 27 ভিআইএম-এর কাছে সম্পূর্ণ অদৃশ্য করার জন্য এটিই আমাকে সমস্যা সমাধানে সহায়তা করে।

  1. আমি ইনস্টল করেছিলাম TortoiseHgযার একটি পাইথন 27.dll ফাইল রয়েছে এবং যার সংগ্রহস্থল রয়েছে Path, যার অর্থ এটি ভিমে দৃশ্যমান। এটা অদৃশ্য, কেবল থেকে TortoiseHg সংগ্রহস্তলটি করতে Path(আরো সাধারণত কোনো অ-পাইথন প্রোগ্রাম যা python27.dll রয়েছে এবং যার পথ হল Path। এমনটি করে where python27.dllজানালা কনসোলে, আপনি তাদের সব অনুসন্ধান।)
  2. আরও একটি পাইথন 27.dll ইন ভিমেও C:\Windows\System32দৃশ্যমান। এটিকেও অদৃশ্য করতে, এটিকে সরান C:\Python27। এবং C:\Python27থেকে সরান Path
  3. %PYTHONPATH%আনসেট ছাড়ুন । পাইথন 3.5 রেপোজিটারি রয়েছে তা নিশ্চিত করুন Path

আমার সিস্টেম

  • 10 প্রো 64 বিট জিতুন।
  • ভিম 8.0.0045 bit৪ বিটের বিশাল বৈশিষ্ট্য (+ ডিন / পাইথন + ডিন / পাইথন 3) রাতের ভিএম উইন্ডোজ বিল্ড সাইট থেকে ডাউনলোড হয়েছে ।
  • YouCompleteMe অজগর 3.5.2 64 বিটের সাথে সম্মতি জানায়
  • পাইথন 3.5.2 64 বিট
  • পাইথন 2.7.12 64 বিট
  • %PYTHONHOME%পাইথন 3 ইনস্টলেশন ফোল্ডারে সেট করা আছে এবং এতে অন্তর্ভুক্ত রয়েছে Path

আমার সমস্যা

নীচের চিত্রের মতো ভিএম চালু করা হলে ত্রুটিগুলি সনাক্ত করা হয়।

ভিম লঞ্চ ত্রুটি

বার্তা হয়

Error detected while processing function youcompleteme#Enable[5]..<SNR>124_SetUpPython:
line 39:
E887: Sorry, this command is disabled, the Python's site module could not be loaded.

কারণ নির্ণয়

উভয় :echo has('python')এবং :echo has('python3')আউটপুট 1. কিন্তু যখন আমি করি :py print 'test', vim আমাকে একই E887 ত্রুটি বার্তা দেয়।

তারপরে আমি পাইথনটি সম্পূর্ণরূপে 2.7.12 আনইনস্টল করেছিলাম, তবে :echo has('python')এখনও 1 আউটপুট :py print 'test'দেয় এবং এখনও E887 ত্রুটি দেয়! ইতিমধ্যে প্রত্যাশা হিসাবে :py3 print('test')সর্বদা ঠিক আছে এবং আউটপুট পরীক্ষা কাজ করে ।

এটি YouCompleteMe থেকে কোনও সমস্যা না হওয়ার জন্য, আমি ভিএম চালু করেছিলাম gvim -u NONE। মুদ্রণ পরীক্ষা একই ত্রুটি বার্তা দেয়। সুতরাং সমস্যাটি ভিআইএম থেকেই, যা পাইথন ২.7.x সাইট মডিউল সম্পর্কিত কর্মীদের ব্যর্থ করে।

কিছু লোক পাইথন ২.7.৯ ইনস্টল করার পরামর্শ দেয় তবে এটি আমার পক্ষে কার্যকর হয় না। সম্ভবত এই সমাধানটি কেবল 32 বিট অজগর ২.7 এর জন্য কাজ করে। আমি পরীক্ষা করিনি তাই আমি নিশ্চিত করতে পারি না।

কেন এই সমস্ত ঘটে:

  1. প্রথমে, কাজ করে where python27.dllআমি টর্টোইএইচজি সংগ্রহস্থলের অধীনে অন্য একটি পাইথন 27.dll ফাইল রয়েছে। এটা কেন হয় :echo has('python')এখনো 1 আউটপুট পর আমি পাইথন 2.7.12 আনইনস্টল।
  2. তারপরে, এটিকে সহজভাবে বলতে, :has('python')উভয় শর্ত পূরণ হলে কমান্ড আউটপুট 1:

    • ভিম + ডিন / পাইথন বৈশিষ্ট্য (যথাক্রমে + ডিন / পাইথন 3 করার সময় :has('python3')) দিয়ে সংকলিত হয়

    • পাইথন 27.dll ফাইলটি আপনার পথে পাওয়া যায়। (যথাক্রমে পাইথন 35.ডিল। দেখুন :help-python-dynamicএবং :help has-pythonআরও তথ্যের জন্য)) তবে এটি আরও পরীক্ষা করে না ; যে কারণে has-pythonচেক 1 দেয় তবে তবুও ত্রুটিগুলি সনাক্ত করা হয়।

  3. পাইথন 2.7.12 স্বয়ংক্রিয়ভাবে সেট নেই %PYTHONPATH%, যখন পাইথন 3.5.2 এই মান সেট <where_python_found>\Libএবং <where_python_found>\Lib\site-packagesউইন্ডোজ Starup এ যদি এটা পাইথন এক্সিকিউটেবল এটি Path। আমার ক্ষেত্রে যেখানে কেবল অজগর 3.5.3 ইনস্টল করা আছে এবং টর্টোইজএইচজি এর পাইথন 27.dll পাওয়া যায় ভিমে, যখন আমি চালাব :py print 'test', ভিম পাইথন ২.7 সাইট মডিউল খুঁজবে তবে পাইথন 3.5.৩ এর মধ্যে %PYTHONPATH%। এজন্য ত্রুটি E887 নিক্ষেপ করা হয়। ফলে, যদি আমরা সেট %PYTHONPATH%পাইথন 2.7 পয়েন্ট করার জন্য স্পষ্টভাবে, E887 ত্রুটি হবে অদৃশ্য !

সমাধান

শুরু টিএল দেখুন: ডিআর অংশ।

উপসংহার

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

অজগর উভয় সংস্করণ রান সময় সময়ে একই উদাহরণস্বরূপ দ্বারা অনুরোধ করা যেতে পারে ঠিক ঠিক আছে। বাস্তব সমস্যা পাইথন শেয়ারের উভয় সংস্করণ এক PYTHONPATH । তাহলে PYTHONPATHপাইথন সংস্করণের সাথে মেলে না, পাইথন অধিকার সাইট-প্যাকেজ খুঁজে পেতে এবং অভিযোগ তেজ করতে ব্যর্থ। এটি আমাদের বেশিরভাগটিকে এটি একটি ভীম সমস্যা বলে মনে করে। কিন্তু না.

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