ভ্যুচুয়ালেনভ এবং পাইেনভের মধ্যে কী সম্পর্ক?


175

আমি সম্প্রতি আমার ওয়ার্কফ্লোতে কীভাবে ভার্চুয়ালেনভ এবং ভার্চুয়ালেনভ্রাপার ব্যবহার করতে হবে তা শিখেছি কিন্তু আমি পাইনভকে কয়েকটি গাইডে উল্লিখিত দেখেছি কিন্তু পাইয়েনভ কী এবং এটি কীভাবে পার্চুয়ালেনভের সাথে আলাদা / সমান তা বোঝার জন্য আমি বুঝতে পারি না। পাইয়েন্ভ কি ভার্চুয়ালেনভ বা প্রশংসামূলক সরঞ্জামের জন্য আরও ভাল / নতুন প্রতিস্থাপন? যদি আধুনিক এটি আলাদাভাবে কী করে এবং কীভাবে দু'জন (এবং প্রযোজ্য ক্ষেত্রে ভার্চুয়ালেনভ্রাপার) একসাথে কাজ করে?


3
fgimian.github.io/blog/2014/04/20/… : তবে পাইনাভ নামে আরও একটি বিকল্প রয়েছে যার বেশ কয়েকটি উল্লেখযোগ্য সুবিধা রয়েছে
মার্টিজন পিটারস

11
আমার মতো হবেন না এবং এতে pyenvবিভ্রান্ত হবেন নাpyvenv
ব্যবহারকারীর

উত্তর:


162

Pyenv এবং virtualenv ভিন্ন সরঞ্জামগুলি আমাদের কাছে বিভিন্ন উপায়ে কাজ বিভিন্ন কিছু করার আছে:

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

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

venv পাইথন> 3.3

দ্রষ্টব্য যে পাইথন ৩.৩ থেকে ভার্চুয়ালএনভ বাস্তবায়নের জন্য একটি নির্মিত রয়েছে যা কিছু স্থাপনায় পাইভেনভ নামে একটি মোড়ক ব্যবহার করে - এই মোড়কটি পাইথন ৩.6 এ অবহিত করা হয় , যা সম্ভবত পছন্দ হিসাবে ব্যবহার করা উচিত। মোড়কের সমস্যাগুলি এড়াতে প্রায়শই এটি ব্যবহার করে সরাসরি ব্যবহার করা ভাল ধারণা /path/to/python3 -m venv desired/env/pathবা আপনি pyউইন্ডোজটিতে অজগর নির্বাচকটি ব্যবহার করতে পারেন py -3 -m venv desired/env/path। এটি desired/env/pathকনফিগার করে নির্দিষ্ট ডিরেক্টরি তৈরি করবে এবং এটিকে যথাযথভাবে পপুলেট করবে। সাধারণভাবে এটি ভার্চুয়ালইএনভি ব্যবহার করার মতো।

অতিরিক্ত সরঞ্জাম

এখানে অনেকগুলি সরঞ্জাম রয়েছে যা এটি উল্লেখযোগ্য এবং বিবেচ্য, কারণ তারা উপরের এক বা একাধিকটি ব্যবহারে সহায়তা করতে পারে:

  • ভার্চুয়ালএএনভিওয়ার্পার ভার্চুয়ালএএনভি - ক্রস প্ল্যাটফর্মের ব্যবহার ও পরিচালনা পরিচালনা ও সরলকরণ করে ।
  • পাইয়ানভ-ভার্চুয়ালেনভ , পায়েনভ- ইনস্টলার দ্বারা ইনস্টল করা , যা ভার্চুয়ালএনভকে পরিচালনা ও ইন্টারফেস করার জন্য পাইয়েভ সরঞ্জাম দেয় - এর সাহায্যে আপনি একটি বেস ইনস্টলেশন স্থাপন করতে পারেন যার মধ্যে পাইথনের একাধিক সংস্করণ রয়েছে এবং এর প্রতিটিটির মধ্যে বিচ্ছিন্ন পরিবেশ তৈরি করা যায় - লিনাক্স / ওএস- এক্সপরামর্শ দিয়েছেন জোহান ভিসাগি
  • পাইআইনস্টলার আপনার অজগর কোডটি নিতে পারে, সম্ভবত ভার্চুয়ালএএনভি-র অধীনে বিকাশিত ও পরীক্ষিত হতে পারে এবং এটি বান্ডিল করতে পারে যাতে এটি এমন একটি প্ল্যাটফর্ম চালাতে পারে যাতে অজগরটির সংস্করণ ইনস্টল করা নেই - নোট করুন এটি কোনও ক্রস সংকলক নয় যা আপনার উইন্ডোজ (ভার্চুয়াল) প্রয়োজন -) উইন্ডোজ ইনস্টল ইত্যাদি তৈরির জন্য মেশিন, তবে এটি অসাধারণ হয়ে উঠতে পারে এমনকি আপনি যেখানে অজগরটি ইনস্টল হবে তা নিশ্চিত হতে পারেন তবে পাইথনের সংস্করণ এবং সমস্ত গ্রন্থাগারগুলি আপনার কোডের সাথে সামঞ্জস্য করবে কিনা তা নিশ্চিত হতে পারেন না।

3
এটি সম্ভবত পাইয়ানভ-ভ্যুচুয়ালেনভের উল্লেখযোগ্য, যা পাইয়ানভ এবং ভার্চুয়ালেনভকে একযোগে একরকমভাবে কাজ করতে দেয় ison যদি আপনি পাইয়ানভ-ইনস্টলার ব্যবহার করে পাইয়ানভ ইনস্টল করে থাকেন তবে পায়েনভ-ভার্চুয়ালেনভ ইতিমধ্যে উপস্থিত থাকবে। * github.com/yyuu/pyenv-virtualenv * github.com/yyuu/pyenv-installer
wjv

1
venvস্ট্যান্ডার্ড লাইব্রেরিতে এখন কী হবে ?
Flimm

@ ফ্লিম: অজগর থেকে ৩.৩ এর পরের ভেন্ভ স্ট্যান্ডার্ড লাইব্রেরির একটি অংশ এবং এটি ভ্যাচুয়ালেনভের পরিবর্তে ব্যবহার করা উচিত কারণ এটি প্রায়শই " ভ্যাচুয়ালেভ
স্টিভ বার্নেস

2
পাইয়ানভ-ভার্চুয়ালেনভ কেবল (বা কমপক্ষে আর নেই) লিনাক্স নয়। MacOS এ সহজে ইনস্টল করার জন্য এটির জন্য হোমব্রিউ প্যাকেজ রয়েছে।
ঘুরুন

আন্তঃক্রিয়াশীলতা হাইলাইট করার জন্য আপনাকে ধন্যবাদ!
হ্যাশরকেটসিন্ট্যাক্স

16

virtualenvআপনাকে একটি কাস্টম পাইথন ইনস্টলেশন তৈরি করতে দেয় যেমন আপনার প্রকল্পের একটি উপ-ডিরেক্টরিতে। আপনার প্রতিটি প্রকল্পের নিজস্ব স্বতন্ত্র python(বা এমনকি বেশ কয়েকটি) তাদের নিজস্ব ভার্চুয়ালেনভের অধীনে থাকতে পারে। কিছু / সমস্ত পুণ্যার্থীদের পক্ষে এমনকি pythonদ্বন্দ্ব ছাড়াই (যেমন 2.7.16) এর একই সংস্করণ থাকা পুরোপুরি ঠিক - তারা পৃথকভাবে বেঁচে থাকে এবং একে অপরকে চেনে না। আপনি যদি সেগুলির যে কোনওটি ব্যবহার করতে চান python, আপনার activateএটি থাকতে হবে (একটি স্ক্রিপ্ট চালিয়ে যা অস্থায়ীভাবে আপনার সংশোধন করবে PATHযে ভার্চুয়ালেনভের bin/ডিরেক্টরিটি প্রথম আসে তা নিশ্চিত করে )। সেই বিন্দু থেকে, কল করা python(বা pipইত্যাদি) আপনি যতক্ষণ না deactivateএটি (যা পুনরুদ্ধার করে PATH) অবধি সেই ভার্চুয়ালেনভের সংস্করণটি গ্রহণ করবে ।

pyenvএর চেয়েও বিস্তৃত স্কেলে পরিচালিত হয় virtualenv- এতে পাইথন ইনস্টলেশনগুলির নিবন্ধক রয়েছে (এবং নতুন ইনস্টল করতে ব্যবহার করা যেতে পারে) এবং আপনি pythonকমান্ডটি ব্যবহার করার সময় পাইথনের কোন সংস্করণটি চালিত হবে তা কনফিগার করতে দেয় । অনুরূপ মনে হয় তবে ব্যবহারিক ব্যবহার কিছুটা আলাদা। এটি pythonআপনার PATH(স্থায়ীভাবে) শিম স্ক্রিপ্ট প্রিন্ট করে এবং তারপরে কোন "আসল" pythonপ্রার্থনা করবে তা স্থির করে কাজ করে। এমনকি আপনি আপনার ভার্চুয়ালেনভ পাইথনগুলির একটিতে প্লাগইন কনফিগার করতে পারেন ( pyenv-virtualenvপ্লাগইন ব্যবহার করে )। পাইথন সংস্করণগুলি আপনি ইনস্টল করে pyenvএটির $(pyenv root)/versions/ডিরেক্টরিতে যান (ডিফল্টরূপে পাইয়ানভ মূলটি হ'ল py / .pyenv) সুতরাং ভার্চুয়ালেনভের চেয়ে বেশি 'গ্লোবাল' রয়েছে। সাধারণত, আপনি পাইথন সংস্করণগুলির মাধ্যমে অনুলিপি করতে পারবেন না pyenv, অন্তত এটি করা মূল ধারণা নয়।

নির্দিষ্ট পাইথন সংস্করণ সহ ভার্চুয়ালেনভ তৈরি করতে আপনার সিস্টেমে কোথাও এটির সংস্করণ থাকা উচিত (এটি চালু আছে PATHবা না) এবং মূলত এটি আপনার নতুন নির্মিত ভার্চুয়ালেনভের মধ্যে ক্লোন করা উচিত। অবশ্যই, একটি নির্দিষ্ট সংস্করণ পাওয়ার একটি উপায় হ'ল এটির মাধ্যমে ইনস্টল করাpyenv । এটি শেষ হয়ে গেলে, পৃথক ভার্চুয়ালভিনগুলি তাদের মধ্যে বিভিন্ন মডিউল (বা এর সংস্করণ) ইনস্টল করে বিচ্ছিন্ন করতে পারে।

সংক্ষেপে:

  • virtualenv আপনাকে বিদ্যমানগুলি থেকে ক্লোন করে স্থানীয়, স্বাধীন পাইথন ইনস্টলেশন তৈরি করতে দেয় to
  • pyenv আপনাকে পাইথনের বিভিন্ন সংস্করণ একযোগে ইনস্টল করতে দেয় (সিস্টেম-প্রশস্ত বা কেবল স্থানীয় ব্যবহারকারীর জন্য) এবং তারপরে যেকোন নির্দিষ্ট সময়ে অজগরগুলির মধ্যে কোনটি চলতে হবে তা বেছে নিন (ভার্চুয়ালেনভ বা অ্যানাকোন্ডা দ্বারা নির্মিত)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.