ভেন্ভ, পাইভেনভ, পাইএনভ, ভার্চুয়ালেনভ, ভার্চুয়ালেনভ্রাপার, পিপেনভ ইত্যাদির মধ্যে পার্থক্য কী?


1016

পাইথন ৩.৩ এর মানক লাইব্রেরিতে নতুন প্যাকেজ অন্তর্ভুক্ত রয়েছে venv। এটি কী করে এবং অন্যান্য সমস্ত প্যাকেজগুলির সাথে এটি কীভাবে পৃথক হয় যা রেজেক্সের সাথে মিলে যায় (py)?(v|virtual|pip)?env?


20
এবং নিকটতম ভোটের প্রতিশ্রুতি জানাতে, আমি মনে করি এটি স্ট্যাকওভারফ্লো / প্রশ্নগুলি / 29950300 /… এর চেয়ে বেশি সাধারণ প্রশ্ন এবং তাই এই প্রশ্নটি সম্পাদনা করা বা সেই পোস্টে অতিরিক্ত সাধারণ উত্তর পোস্ট করা আমার পক্ষে স্বাচ্ছন্দ্য বোধ হয় না।
ফ্লিম্ম

12
এই গাইডটি দরকারী এবং ক্রমাগত আপডেট হয়েছে যেহেতু পাইথন আরও বেশি কিছু করতে "আরও একবারে
মাইকেল

2
৩.6 হিসাবে আমি ম্যাকোসে পাইয়েনভের তুলনায় ভার্চুয়ালেনভকে কাজ করা সহজ করে পেয়েছি (আমি একজন পাইনাবব)
হ্যাশরোকটসাইন্ট্যাক্স

@ হ্যাশরকেটসিন্ট্যাক্স virtualenvএবং pyenvএকই ফাংশনটি সম্পাদন করবেন না এবং একে অপরের বিকল্প নয়। আমার উত্তর দেখুন।
ফ্লিম

6
পাইপেনভের সাথে সময় নষ্ট করে পুরো দিন পুড়িয়েছি। নীচে লাইন, এটি ওভারমার্কেটেড। আপনার যদি পাই 2 প্রয়োজন হয় তবে ভেনভ এবং ভার্চুয়ালেনভ সঠিক সরঞ্জাম। কনডা (আপনার যদি পুরো স্ট্যাকের প্রয়োজন না হয় তবে মিনিকোন্ডা) খুব ভাল। খুব ভালো কাজের মধ্যে থাকবেন: chriswarrick.com/blog/2018/07/17/...
SwimBikeRun

উত্তর:


1378

পাইপিআই প্যাকেজগুলি স্ট্যান্ডার্ড লাইব্রেরিতে নেই:

  • virtualenvপাইথন লাইব্রেরির জন্য পৃথক পৃথক পাইথন পরিবেশ তৈরি করা একটি খুব জনপ্রিয় সরঞ্জাম। আপনি যদি এই সরঞ্জামটির সাথে পরিচিত না হন তবে আমি এটি শিখার পক্ষে সুপারিশ করছি কারণ এটি একটি খুব দরকারী সরঞ্জাম, এবং আমি এই উত্তরের বাকি অংশগুলির সাথে এর সাথে তুলনা করব।

    এটি একটি ডিরেক্টরিতে (যেমন env/:) গুচ্ছ ফাইলগুলি ইনস্টল করে এবং তারপরে PATHপরিবেশের পরিবর্তনশীলটিকে কাস্টম binডিরেক্টরি (যেমন env/bin/:) সহ উপসর্গ করার জন্য কাজ করে । pythonবা python3বাইনারি সম্পর্কিত একটি অনুলিপি এই ডিরেক্টরিতে স্থাপন করা হয়েছে, তবে পাইথনটি পরিবেশের ডিরেক্টরিতে প্রথমে এর পাথের সাথে সম্পর্কিত গ্রন্থাগারগুলি সন্ধান করার জন্য প্রোগ্রাম করা হয়েছে। এটি পাইথনের স্ট্যান্ডার্ড লাইব্রেরির অংশ নয়, এটি পিপিএ (পাইথন প্যাকেজিং কর্তৃপক্ষ) দ্বারা আনুষ্ঠানিকভাবে আশীর্বাদপ্রাপ্ত। একবার সক্রিয় হয়ে গেলে আপনি ভার্চুয়াল পরিবেশে প্যাকেজগুলি ইনস্টল করতে পারেন pip

  • pyenvপাইথন সংস্করণগুলি বিচ্ছিন্ন করতে ব্যবহৃত হয়। উদাহরণস্বরূপ, আপনি পাইথন ২.7, ৩.6, ৩.7 এবং ৩.৮ এর বিপরীতে আপনার কোডটি পরীক্ষা করতে চাইতে পারেন, সুতরাং তাদের মধ্যে স্যুইচ করার জন্য আপনার একটি উপায় দরকার। একবার সক্রিয় হয়ে গেলে, এটি PATHপরিবেশের পরিবর্তনশীলের সাথে উপস্থাপিত হয় ~/.pyenv/shims, যেখানে পাইথন কমান্ড ( python, pip) এর সাথে মেলে বিশেষ ফাইল রয়েছে । এগুলি পাইথন-শিপড কমান্ডের অনুলিপি নয়; এগুলি হ'ল বিশেষ স্ক্রিপ্ট যা PYENV_VERSIONপরিবেশের পরিবর্তনশীল, বা .python-versionফাইল বা ফাইলের উপর ভিত্তি করে পাইথনের কোন সংস্করণটি চালানো হবে সে সম্পর্কে সিদ্ধান্ত নিয়েছে ~/.pyenv/versionpyenvকমান্ডটি ব্যবহার করে একাধিক পাইথন সংস্করণ ডাউনলোড ও ইনস্টল করার প্রক্রিয়াটিকে আরও সহজ করে তোলে pyenv install

  • pyenv-virtualenvএকটি প্লাগ হয় pyenvহিসাবে একই লেখক দ্বারা pyenv, আপনি ব্যবহার করার অনুমতি দিতে pyenvএবং virtualenvএকই সময় সুবিধামত হয়। তবে আপনি যদি পাইথন ৩.৩ বা তার পরে ব্যবহার করেন তবে এটি যদি পাওয়া pyenv-virtualenvযায় python -m venvতবে তার পরিবর্তে চালানোর চেষ্টা করবে virtualenv। আপনি যদি সুবিধার বৈশিষ্ট্যগুলি না চান তবে আপনি একসাথে virtualenvএবং ব্যবহার করতে পারেন ।pyenvpyenv-virtualenv

  • virtualenvwrappervirtualenv( ডক্স দেখুন ) এর এক্সটেনশনের একটি সেট । এটা আপনার মত কমান্ড দেয় mkvirtualenv, lssitepackagesএবং বিশেষত workonবিভিন্ন মধ্যে স্যুইচ জন্য virtualenvডিরেক্টরি। আপনি একাধিক virtualenvডিরেক্টরি চাইলে এই সরঞ্জামটি বিশেষভাবে কার্যকর ।

  • pyenv-virtualenvwrapperএকটি প্লাগ হয় pyenvহিসাবে একই লেখক দ্বারা pyenv, সুবিধামত সংহত করার virtualenvwrapperমধ্যে pyenv

  • pipenvলক্ষ্য একত্রিত করতে Pipfile, pipএবং virtualenvকম্যান্ড-লাইন এক কমান্ড মধ্যে। virtualenvডিরেক্টরি সাধারণত স্থাপন পরার ~/.local/share/virtualenvs/XXXসঙ্গে XXXপ্রকল্পের ডিরেক্টরি পথের একটি হ্যাশ হচ্ছে। এটি ভিন্ন virtualenv, যেখানে ডিরেক্টরিটি বর্তমান কার্যক্ষম ডিরেক্টরিতে থাকে। pipenvপাইথন অ্যাপ্লিকেশনগুলি বিকাশকালে (গ্রন্থাগারের বিপরীতে) ব্যবহার করার উদ্দেশ্যে বোঝানো হয়েছিল। এর বিকল্প রয়েছে pipenvযেমন poetry, আমি এখানে তালিকাবদ্ধ করব না কারণ এই প্রশ্নটি কেবল একইভাবে নামক প্যাকেজগুলির বিষয়ে is

স্ট্যান্ডার্ড গ্রন্থাগার:

  • pyvenvপাইথন 3 দিয়ে একটি স্ক্রিপ্ট প্রেরণ করা হয়েছে তবে পাইথন 3.6 এ অবহেলা করা হয়েছে কারণ এতে সমস্যা ছিল (বিভ্রান্তিকর নামটি উল্লেখ না করা)। পাইথন ৩.6++-তে সঠিক সমতুল্য python3 -m venv

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

নতুনদের জন্য সুপারিশ:

এটি প্রাথমিক শিক্ষাগুলির জন্য আমার ব্যক্তিগত পরামর্শ: পাইথন 2 এবং 3 উভয় এবং বিভিন্ন পরিস্থিতিতে কাজ করে এমন সরঞ্জামগুলি শিখতে শুরু করুন virtualenvএবং pipআপনার প্রয়োজন শুরু হওয়ার সাথে সাথে অন্য সরঞ্জামগুলি বেছে নিন।


115
এটি খুব সহায়ক! তাহলে 1 এর পরিবর্তে 8 টি জটলা জিনিস কেন? ("এটির জন্য একটি - এবং
সর্বোপরি

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

31
"ভেনভের পরিচয় সেই গণ্ডগোলের অংশ হিসাবে একটি প্রতিক্রিয়া" "এক্সের মতো কিছু" করার মতো অনেক কিছুই যখন আসে তখন লোকেরা সবসময় মনে করে যে তারা 'এক্স এর মতো কিছু' করে অন্য কোনও জিনিস তৈরি করে সেই জঞ্জালটিকে আরও উন্নত করতে পারে people । আসলে এটির ধরণের মজাদার। আমরা এখন ৪ বছর পরে ... তাই জিজ্ঞাসা করা প্রাসঙ্গিক হতে পারে, venvআসলেই কি এই সমস্যাটি সমাধান হয়েছিল?
ক্রিস

34
তালিকার কেবলমাত্র দুটি সরঞ্জাম যা একই অঞ্চলে তর্কযোগ্যভাবে যা আবশ্যক তা হ'ল ভার্চুয়ালেনভ এবং ভেনভ, সুতরাং আমরা প্রতিযোগিতামূলক সরঞ্জামগুলির কারণে সৃষ্ট গোলযোগের সাথে আমরা যে বৈশিষ্ট্যটি ব্যবহার করছি তা খুব স্পষ্ট নয়। তালিকার মধ্যে বেশ কয়েকটি ভার্চুয়াল পরিবেশ-সম্পর্কিত সরঞ্জাম রয়েছে, যা একই ধরণের শব্দযুক্ত নামের সাথে রয়েছে। এটি বিভ্রান্তিকর হতে পারে, বিশেষত যারা তাদের সম্পর্কে কেবল শিখছেন তাদের কাছে। ভেনভ কি পরিস্থিতির উন্নতি করেছে? এটি অন্যান্য ভার্চুয়াল পরিবেশ সরঞ্জামগুলির জন্য আরও হালকা-ওজনের বিকল্পের প্রস্তাব দেয়, দেশীয় পরিবর্তনগুলি এবং স্ট্যান্ডার্ড লাইব্রেরির একটি জায়গা থেকে উপকৃত হয়। …
ম্যাগনাস লিন্ড অক্সলন্ড

11
@ কোকবার্ট পাইথন মাত্র ৩.৫ থেকে পাইথন ৩.6-তে উন্নীত করার পরে এবং আমার সমস্ত ভ্যুচুয়ালেভ ব্রেক করার পরে দেখে মনে হচ্ছে venvআপনি আরও সহজেই পাইথনের একটি নতুন সংস্করণে আপগ্রেড করতে দিন।
ড্যানিয়েল এইচ

275

আমি কেবল virtualenvপাইথন 3.3 + এর পরে ব্যবহার এড়াতে এবং পরিবর্তে স্ট্যান্ডার্ড শিপড লাইব্রেরি ব্যবহার করব venv। একটি নতুন ভার্চুয়াল পরিবেশ তৈরি করতে আপনি টাইপ করতে পারেন:

$ python3 -m venv <MYVENV>  

virtualenvভার্চুয়াল পরিবেশের বিন ডিরেক্টরিতে পাইথন বাইনারি অনুলিপি করার চেষ্টা করে। তবে এটি সেই বাইনারিটিতে এমবেড করা লাইব্রেরি ফাইল লিঙ্কগুলি আপডেট করে না, সুতরাং আপনি যদি উত্স থেকে পাইথনটিকে আপেক্ষিক পথের নামগুলির সাথে একটি নন-সিস্টেম ডিরেক্টরিতে তৈরি করেন তবে পাইথন বাইনারি ব্রেক। যেহেতু আপনি এভাবেই অনুলিপি বিতরণযোগ্য পাইথন তৈরি করেন এটি একটি বড় ত্রুটি। ওএস এক্স-এ এম্বেড করা লাইব্রেরি ফাইলের লিঙ্কগুলি পরিদর্শন করতে বিটিডাব্লু, ব্যবহার করুন otool। আপনার ভার্চুয়াল পরিবেশের মধ্যে থেকে উদাহরণস্বরূপ, টাইপ করুন:

$ otool -L bin/python
python:
    @executable_path/../Python (compatibility version 3.4.0, current version 3.4.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.0.0)

ফলস্বরূপ আমি এড়ানো হবে virtualenvwrapperএবং pipenvpyvenvঅবচয় করা হয়। pyenvযেখানে ব্যবহৃত হয় প্রায়শই ব্যবহৃত হবে বলে মনে হয় virtualenvতবে আমি এ থেকে দূরে থাকব কারণ আমি মনে করি venvযে pyenvএটি যা তৈরি করা হয়েছে তাও করে ।

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

pyenvঅনুরূপ venvযে এটা করতে দেয় আপনি একাধিক পাইথন পরিবেশের পরিচালনা করুন। তবে pyenvআপনি সহজেই রোলব্যাক গ্রন্থাগারটি কিছু শুরুর স্টেটে ইনস্টল করতে পারবেন না এবং adminলাইব্রেরি আপডেট করার জন্য আপনার সম্ভবত কিছু সুযোগের প্রয়োজন হবে । সুতরাং আমি মনে করি এটি ব্যবহার করা ভাল venv

বিগত কয়েক বছরে আমি বিল্ড সিস্টেমগুলিতে অনেকগুলি সমস্যা পেয়েছি (ইমাস প্যাকেজস, পাইথন স্ট্যান্ডেলোন অ্যাপ্লিকেশন বিল্ডার, ইনস্টলার ...) যা শেষ পর্যন্ত সমস্যাগুলির মধ্যে আসে virtualenv। আমি মনে করি অজগরটি আরও ভাল প্ল্যাটফর্ম হয়ে উঠবে যখন আমরা এই অতিরিক্ত বিকল্পটি সরিয়ে ফেলব এবং কেবল ব্যবহার করব venv


3
add2virtualenvএর অধীনে PYTHONPATHএকটি কাস্টম _virtualenv_path_extensions.pthফাইল যুক্ত করে আপনার টুইটগুলি করে site-packages। বিকল্পভাবে আপনি ভার্চুয়াল পরিবেশটি সক্রিয় করার সময় আপনি PYTHONPATHযে bin/activateফাইলটিকে কল করবেন সেই পরিবেশে পরিবেশের পরিবর্তনশীল আপডেট করতে পারবেন । অথবা আপনি site-packagesঅতিরিক্ত ডিরেক্টরিতে নির্দেশ করতে সিমলিংকগুলি যুক্ত করতে পারেন । এই দুটি বিকল্পই সমস্যা সমাধানের জন্য প্রচলিত কমান্ড লাইন সরঞ্জাম বিকাশকারীদের পক্ষে ব্যাপকভাবে স্বচ্ছ। .pthএকটি অননুমোদিত নাম সহ একটি কাস্টম ব্যবহার , এটি আরও যাদুকর আইএমও বলে মনে করে।
রিয়াজ রিজভী

15
ঠিক আছে তাই আমি স্ট্যাকওভারফ্লো / প্রশ্নগুলি / 48130371/… এ নিশ্চিত করেছি যে PYTHONPATHপ্রয়োজনটিকে মেনে চলার জন্য একটি সঠিক আপডেট add2virtualenv। আপনার প্রথম মন্তব্য থেকে এসও তেমন সহায়তার অভাব সম্পর্কে, আমার একমাত্র পরামর্শ হ'ল উত্তরগুলি আপলোড করুন যদি তারা আপনার সমস্যার সমাধান করে, আপনার পোস্ট করার সময় লোকেদের আপনার সমস্যার সমাধানে উদ্বুদ্ধ করতে? আধ ঘন্টা তদন্ত + মাউস ক্লিকের বিনিময়ে লেখার আপ? একটি ভাল বাণিজ্যের মতো শোনাচ্ছে ...
রিয়াজ রিজভী

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

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

6
@ আন্ড্রেমোরো এটি অবহিত pyvenv, নয় pyenv। এই সরঞ্জামগুলির নাম নিয়ে বিভ্রান্ত হওয়া এত সহজ।
ড্যানিয়েল হোমস

24

আমি pipenvখরগোশের গর্তটি নীচে নেমে এসেছি ( এটি আসলেই গভীর এবং অন্ধকার গর্ত ... ) এবং শেষ উত্তরটি 2 বছর আগে শেষ হওয়ার কারণে পাইথনের ভার্চুয়াল খামের শীর্ষস্থানীয় বিষয়গুলির সাথে সাম্প্রতিকতম অগ্রগতির সাথে আলোচনাটি আপডেট করার পক্ষে এটি দরকারী হয়েছিল felt খুঁজে পেয়েছি।

দাবিপরিত্যাগ:

এই উত্তরটি খামের সমাধান হিসাবে পাইপেনভ বনাম ভেনভের গুণাগুণ সম্পর্কে তীব্র বিতর্ক চালিয়ে যাওয়ার বিষয়ে নয় - আমি কোনওটিরও সমর্থন করি না । এটা তোলে সম্বন্ধে PyPA পরস্পরবিরোধী মান প্রচারে এবং কিভাবে ভবিষ্যত উন্নতির virtualenv একটি উপার্জন অস্বীকার করার প্রতিশ্রুতি পারেন / অথবা আদৌ তাদের মধ্যে পছন্দ। আমি এই দুটি সরঞ্জামগুলিতে স্পষ্টভাবে মনোনিবেশ করেছি কারণ তারা পিপিএ দ্বারা অভিষিক্ত ।

venv

ও.পি. নোট হিসাবে, পরিবেশটি ভার্চুয়ালাইজ করার জন্য ভেনভ একটি সরঞ্জাম। না কোনো তৃতীয় পক্ষ সমাধান, কিন্তু নেটিভ হাতিয়ার। PyPA উপস্থাপনা venv তৈরি করার জন্য ভার্চুয়াল খামে : " সংস্করণ 3.5 পরিবর্তন: venv ব্যবহার এখন ভার্চুয়াল পরিবেশে তৈরি করার জন্য সুপারিশ করা হয় "।

pipenv

pipenv - মত venv - ভার্চুয়াল খামে কিন্তু অতিরিক্ত রোলস-ইন প্যাকেজ ব্যবস্থাপনা এবং তৈরি করতে ব্যবহার করা যেতে পারে দুর্বলতার পরীক্ষণ কার্যকারিতা। ব্যবহারের পরিবর্তেrequirements.txt, পাইপ ফাইলেরpipenv মাধ্যমে প্যাকেজ পরিচালনা সরবরাহকরে। হিসাবে PyPA জন্য উপস্থাপনা pipenv প্যাকেজ পরিচালনার যে পরোক্ষভাবে মনে হবেস্থানচ্যুত হয়।pipfilerequirements.txt

তা যে : pipenv ব্যবহারসমূহ virtualenv ভার্চুয়াল খামে তৈরি করার জন্য তার হাতিয়ার হিসেবে, না venv যা দ্বারা অনুমোদিত PyPA ভার্চুয়াল খামে তৈরি করার জন্য যান থেকে হাতিয়ার হিসেবে।

বিরোধী মানদণ্ড:

সুতরাং যদি ভার্চুয়াল খামের সমাধানটি সমাধান করা যথেষ্ট কঠিন ছিল না, তবে আমাদের কাছে এখন পাইপএ দুটি ভিন্ন সরঞ্জামকে সমর্থন করেছে যা বিভিন্ন ভার্চুয়াল খাম সমাধানগুলি ব্যবহার করে। ভেন্ভ বনাম ভার্চুয়ালেনভের উপর যে গিথুব বিতর্ক তা এই দ্বন্দ্বকে তুলে ধরে এখানে পাওয়া যাবে

সংঘাতের সমাধান:

গিটহাব বিতর্ক উপরের লিঙ্কটি উল্লেখ বাহিত হয়েছে virtualenv অমায়িক দিক উন্নয়ন venv মধ্যে ভবিষ্যতের সংস্করণগুলিতে :

অন্তর্নির্মিত ভেন্টটি পছন্দ করুন: যদি টার্গেট অজগরটি ভেনভ থাকে তবে আমরা এটি ব্যবহার করে পরিবেশ তৈরি করব (এবং তারপরে আমাদের দেওয়া অন্যান্য গ্যারান্টি সুবিধার্থে এটি পরবর্তী ক্রিয়াকলাপ সম্পাদন করবে)

উপসংহার:

সুতরাং দেখে মনে হচ্ছে দুটি প্রতিদ্বন্দ্বী ভার্চুয়াল খাম সমাধানগুলির মধ্যে ভবিষ্যতের কিছুটা সংযোগ থাকবে তবে এখনকার পাইপেনভ - যা ব্যবহার করে virtualenv- বস্তুগতভাবে পরিবর্তিত হয় venv

প্রদত্ত সমস্যার pipenv সমাধান এবং সত্য যে PyPA তার আশীর্বাদ দিয়েছেন, এটা মনে হচ্ছে, উজ্জ্বল ভবিষ্যৎ আছে। যদি virtualenv তার প্রস্তাবিত উন্নয়ন উদ্দেশ্য নেভিগেশন বিতরণ একটি ভার্চুয়াল খাম সমাধান নির্বাচন আর পারেন একটি মামলা হওয়া উচিত pipenv বা venv


5
আমি যা বুঝতে পেরেছি তা থেকে: পাইপেনভের আসল মান ইতিমধ্যে কিছু সময়ের জন্য বিতর্ক হয়েছে এবং এক বছরেরও বেশি সময় ধরে এটি প্রকাশিত হয়নি। তখন থেকে অনেক কিছুই পরিবর্তিত হয়েছে এবং আমি যুক্তি দিয়ে বলব যে এটি কেবল পাইপেনভের জন্য খারাপ হয়েছে ( কবিতা এবং পাইপ- সরঞ্জামগুলির মতো সরঞ্জামগুলি আরও ভাল আকারে রয়েছে)। PyPA পৃষ্ঠাগুলি পুরানো, এবং আমি তর্ক করবে তারা অবনত উচিত pipenvভেনভ একটি স্ট্যান্ডার্ড টুল এবং এগুলি যেমন খুব দক্ষ তবে বৈশিষ্ট্যগুলির একটি সীমিত সেট রয়েছে। virtualenv সঙ্গে প্রতিযোগিতা করে না venv কিন্তু চেষ্টা যেখানে এলাকার আবরণ venv পারব না বা যেতে (যেহেতু এটি একটি আদর্শ) চায় না।
sinoroc

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

8
আমি লাঠি বলতে হবে venv এবং পিপ যতটা সম্ভব। এই দুটি থাকার জন্য এখানে হয়, venv পাইথন এর স্ট্যান্ডার্ড লাইব্রেরির অংশ এবং একটি অর্থে পিপ ভাল থেকে যেমন (মাধ্যমে পাইথন মধ্যে vendored এর ensurepip )। অন্যান্য সরঞ্জাম ( pyenv সরাইয়া সিরিজ: ভিন্ন জিনিস সম্পূর্ণভাবে) মনে হয় বা অনুকরণ (বেশী বা কম সাফল্যের সঙ্গে) নির্ভর venv এবং পিপ । যা মহান. কিন্তু জিনিস নোংরা যান, venv এবং পিপ নিরাপদ ফলব্যাক হয়। শুধুমাত্র অন্যান্য সরঞ্জাম আমি ব্যবহার Tox (সঙ্গে Tox-venv) ভার্চুয়াল পরিবেশ তৈরি করতে এবং পপুলেট করতে সহায়তা করার জন্য (সোজা, কোনও জাদু নয়, আজও এটি উল্লেখ করা হয়নি) mentioned
sinoroc

2
এই সর্বশেষ পোস্টটি সোনার কারণ এটি চুলকানির লোম ছড়িয়ে দেওয়ার ক্ষেত্রে দুর্দান্ত কাজ করেছে। সিস্টেম পাইথনটি আপগ্রেড করার সময় ভার্চুয়ালেনভ ব্যবহার করে আমার ঝুলন্ত বাইনারি নিয়ে সমস্যা হয়েছিল বলে আমি পাইপ এবং ভেনভের সাথে আঁকড়ে আছি।
কোডভিপার

1
অতীতে আমি ত্রুটিগুলি পিপেনভ ননভারবোস নিয়ে ইস্যুতে দৌড়েছি। আরগল এবং খন্দ এছাড়াও: chriswarrick.com/blog/2018/07/17/...
qrtLs

2

2020 এপ্রিল আপডেট

আমি যখন এই পোস্টটি জুড়ে এসেছি তখন একই সন্ধান করছিলাম । আমি মনে করি আমার মতো নতুন পাইথন ব্যবহারকারীদের জন্য কোন সরঞ্জামটি ব্যবহার করা উচিত তা বেশ বিভ্রান্তিকর এবং কঠিন। এটি পাইপেনভ সম্পর্কিত পিআইপিএ ওয়েবসাইট থেকে সরাসরি:

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

যদিও এটি এখনও অব্যাহত রয়েছে, প্রকল্প পরিচালনাকারীরা পিপেনভের পরিবর্তে বা একসাথে ব্যবহারের জন্য অ্যাপ্লিকেশন নির্ভরতা পরিচালনার জন্য অন্যান্য সরঞ্জামগুলি তদন্ত করতে চান want

২০২০ সালের এপ্রিলের পাইপেনভ রিলিজটি পরিকল্পনা অনুসারে এগিয়ে চলেছে এবং তার পরে প্রকাশটিও ট্র্যাকে রয়েছে, তবে টিউটোরিয়ালের এই ক্যাভ্যাটটি সরিয়ে দেওয়া হবে will যদি এই প্রকাশগুলি ট্র্যাক না থেকে থাকে তবে টিউটোরিয়ালটি নিজেই সরিয়ে ফেলা হবে এবং উপলভ্য নির্ভরতা পরিচালনার বিকল্পগুলির আলোচনার পৃষ্ঠার সাথে প্রতিস্থাপন করা হবে।


দেখে মনে হচ্ছে পাইপেনভ বর্তমানে (যেমন 2020 সালের 20 এপ্রিল) এখনও 2020 এপ্রিলের মুক্তির প্রাক-প্রকাশে রয়েছে। এখানে দেখুন ।
অ্যান্ড্রুজামস

এটি প্রশ্নের উত্তর দেয় না।
Flimm

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