কন্ডা কি ভার্চুয়ালেনভের প্রয়োজন প্রতিস্থাপন করে?


205

সাইকপাই ইনস্টল করতে আমার বিশেষ সমস্যা হওয়ার পরে আমি সম্প্রতি কনডাকে আবিষ্কার করেছি, বিশেষত আমি যে হিরোকু অ্যাপ্লিকেশনটি বিকাশ করছি তাতে installing

কন্ডা দিয়ে আপনি পরিবেশ তৈরি করেন, যা ভার্চুয়ালেনভের মতো । আমার প্রশ্নগুলি হ'ল:

  1. আমি যদি কনডা ব্যবহার করি তবে এটি কি ভার্চুয়ালেনভের প্রয়োজনীয়তা প্রতিস্থাপন করবে? যদি তা না হয় তবে আমি কীভাবে দুজনকে একসাথে ব্যবহার করব? আমি কি কনডায় ভার্চুয়ালেনভ, বা ভার্চুয়ালেনভে কনডা ইনস্টল করব?
  2. আমার কি এখনও পাইপ ব্যবহার করা দরকার? যদি তা হয় তবে আমি কি এখনও বিচ্ছিন্ন পরিবেশে পাইপ সহ প্যাকেজ ইনস্টল করতে সক্ষম হব?

আপনি যদি হিরোকুতে কনডা এবং পাইপ ব্যবহার করতে আগ্রহী হন, উদাহরণস্বরূপ github.com/faph/conda-pip-buildpack
faph

ধন্যবাদ। আমি লক্ষ করেছি যে গিথুবটিতে হিরোকুর জন্য বেশ কয়েকটি কনডা বিল্ডপ্যাক রয়েছে। কোন বিল্ডপ্যাকটি ব্যবহার করবেন তা সিদ্ধান্ত নেওয়ার সময় আমার কোন বিষয়গুলি বিবেচনা করা উচিত?
ক্রিটজ

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

হ্যাঁ, আমি দেখেছি তারা এখনও জ্যাঙ্গো 1.8 এ রয়েছে (1.9 নয়)। এই মুহুর্তে আমি যেখানে প্রয়োজন সেখানে কনডা ব্যবহার করব (স্কিপি এবং নম্পী) এবং অন্য কিছুর জন্য পাইপ - তবে এখনও কনডায় থাকবে।
ক্রিটজ

বেশিরভাগ কনডা হেরোকু বিল্ডপ্যাকসটির উত্সটি কেনেথ রেইটসের মনে হয়েছে I তাদের পছন্দ অনুসারে লোকেরা তাদের টুইট করে। আপনার যদি প্রয়োজন হয় তবে এটিতে কনডা এবং পাইপ সমর্থন উভয়ই অন্তর্ভুক্ত রয়েছে কিনা তা পরীক্ষা করুন। এবং যদি তারা পরিবেশ.আইএমএল ফাইল সমর্থন করে। আপনি বিল্ড স্ক্রিপ্টটি পছন্দ করেন কিনা তা দেখতে আপনি সর্বদা দ্রুত বিল্ডপ্যাক কোডটি দিয়ে দেখতে পারেন, উদাহরণস্বরূপ পরিবেশটি কীভাবে তৈরি হয় তা দেখুন।
faph

উত্তর:


157
  1. কন্ডা ভ্যুচুয়ালেনভকে প্রতিস্থাপন করে। আমার মতে এটি আরও ভাল। এটি পাইথনে সীমাবদ্ধ নয় তবে অন্যান্য ভাষার ক্ষেত্রেও এটি ব্যবহার করা যেতে পারে। আমার অভিজ্ঞতায় এটি একটি বেশ স্মুথ অভিজ্ঞতা সরবরাহ করে বিশেষত বৈজ্ঞানিক প্যাকেজগুলির জন্য। আমি মায়াভি প্রথমবার ম্যাকের সাথে সঠিকভাবে ইনস্টল করেছিলাম conda

  2. আপনি এখনও ব্যবহার করতে পারেন pip। আসলে, প্রতিটি নতুন পরিবেশে condaইনস্টল pip। এটি পাইপ-ইনস্টল করা প্যাকেজগুলির সম্পর্কে জানে।

উদাহরণ স্বরূপ:

conda list

আপনার বর্তমান পরিবেশে ইনস্টল করা সমস্ত প্যাকেজ তালিকাভুক্ত করে। কন্ডা-ইনস্টল করা প্যাকেজগুলি এটির মতো দেখায়:

sphinx_rtd_theme          0.1.7                    py35_0    defaults

এবং এর মাধ্যমে ইনস্টল করাগুলির pipমধ্যে <pip>চিহ্নিতকারী রয়েছে:

wxpython-common           3.0.0.0                   <pip>

8
একটি অ্যানাকোন্ডা পরিবেশে পাইপ ব্যবহার করতে কোনও নেতিবাচক আছে কি? এমন কোনও ঘটনা আছে যেখানে আপনি কন্ডার মাধ্যমে প্যাকেজ উপলব্ধ থাকলেও আপনি পাইপটি ব্যবহার করতে চান?
ক্লিগ্রগ্রায়

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

1
আন্ডারস্কোর বা হাইফেন প্যাকেজ নামের অংশ। এটির পাইপ বা কন্ডার সাথে কোনও সম্পর্ক নেই। <pip>শো এটি PIP এর সাথে ইনস্টল করা ছিল অন্যথায় এটি conda সঙ্গে ইনস্টল করা হয়।
মাইক মোলার

4
"কনডা পাইপ-ইনস্টলড প্যাকেজগুলির সম্পর্কে জানে" সহ একটি বড় ক্যাভিয়েট রয়েছে। আমার বোঝার থেকে, একটি conda env ভিতরে, পিপ স্বাধীনভাবে, কাজ করে তাই conda আনইনস্টল পিপ ইনস্টল করতে পারবেন না উদাহরণস্বরূপ প্যাকেজ
information_interchange

1
@ ক্লিগ্রগ্রী - পাইপ এবং কনডা প্যাকেজগুলির সাথে দেশি ভাগ করা লাইব্রেরিগুলি সেগুলির বাইনারি বেমানান সংস্করণ ইনস্টল করতে পারে যা সি ডিবাগারের সাহায্যে গতি না বাড়ানোর জন্য কারও পক্ষে ডিবাগ করা কঠিন হয়ে উঠবে native পাইথন-কেবলমাত্র প্যাকেজগুলির ক্ষেত্রে এটি কেবল সহজেই বোঝা যায়।
বোবাহ

61

সংক্ষিপ্ত উত্তরটি হল, আপনার কেবল কনডা দরকার need

  1. কনডা কার্যকরভাবে একক প্যাকেজে পিপ এবং ভার্চুয়ালেনভের কার্যকারিতা একত্রিত করে, তাই যদি আপনি কনডা ব্যবহার করেন তবে আপনাকে ভার্চুয়ালেনভের প্রয়োজন হবে না।

  2. আপনি অবাক হবেন কত প্যাকেজ কনডা সমর্থন করে। যদি এটি পর্যাপ্ত না হয় তবে আপনি কন্ডার অধীনে পিপ ব্যবহার করতে পারেন।

কনডা, পিপ এবং ভার্চুয়ালেনভের সাথে তুলনা করা কনডা পৃষ্ঠার লিঙ্কটি এখানে রয়েছে:

https://docs.conda.io/projects/conda/en/latest/commands.html#conda-vs-pip-vs-virtualenv-commands


34

ভার্চুয়াল পরিবেশ এবং pip

আমি যুক্ত করব যে ক্যানডা পরিবেশ তৈরি করা এবং অপসারণ করা অ্যানাকোন্ডার সাথে সহজ।

> conda create --name <envname> python=<version> <optional dependencies>

> conda remove --name <envname> --all 

একটি ইন সক্রিয় পরিবেশ মাধ্যমে প্যাকেজগুলি ইনস্টল condaবা pip:

(envname)> conda install <package>

(envname)> pip install <package>

এই পরিবেশগুলি কন্ডার পাইপের মতো প্যাকেজ ব্যবস্থাপনার সাথে দৃ tied ়ভাবে আবদ্ধ , সুতরাং পরিবেশ তৈরি করা এবং পাইথন এবং পাইথন উভয়ই প্যাকেজ ইনস্টল করা সহজ।


Jupyter

এছাড়াও, পরিবেশে ইনস্টলipykernel করা জুপিটার নোটবুকের কার্নেলস ড্রপডাউন মেনুতে একটি নতুন তালিকা যুক্ত করে, নোটবুকগুলিতে প্রজননযোগ্য পরিবেশকে প্রসারিত করে। অ্যানাকোন্ডা ৪.১-এর হিসাবে, আরও সহজে নোটবুকগুলিতে এক্সটেনশন যুক্ত করে , এনবেক্সটেনশনগুলি যুক্ত করা হয়েছিল

বিশ্বাসযোগ্যতা

আমার অভিজ্ঞতায়, কনডা বৃহত্তর লাইব্রেরি যেমন numpyএবং তে ইনস্টল করার ক্ষেত্রে দ্রুত এবং আরও নির্ভরযোগ্য pandas। তদতিরিক্ত, যদি আপনি কোনও পরিবেশের আপনার সংরক্ষিত অবস্থার স্থানান্তর করতে চান তবে আপনি কোনও এনভিকে ভাগ করে বা ক্লোন করে এটি করতে পারেন ।


18

ইনস্টল করার প্রক্রিয়া Conda তৈরি এবং হিসাবে আপনি ইচ্ছুক পাইথন পরিবেশের অপসারণ করতে সক্ষম করবে, সুতরাং হিসাবে একই কার্যকারিতা সঙ্গে আপনি প্রদান virtualenv would।

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

পার্থক্য:

লাইসেন্স চুক্তি. যদিও ভার্চুয়ালেনভ বেশিরভাগ উদার এমআইটি লাইসেন্সের আওতায় আসে , কনডা 3 টি ধারা বিএসডি লাইসেন্স ব্যবহার করে।

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

ভার্চুয়ালেনভের বিপরীতে, কন্ডা কমপক্ষে লিনাক্স সিস্টেমে কিছু সিস্টেম লাইব্রেরির নকল করে। এই লাইব্রেরিগুলি সিঙ্কের বাইরে চলে যেতে পারে যা আপনার প্রোগ্রামগুলির অসঙ্গত আচরণের দিকে পরিচালিত করে।

রায়:

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


2
কিছুটা বিশদ বজায় রাখার কারণ কেন "আপনি বিতরণ করা পরিবেশে বা এইচপিসি হার্ডওয়্যারের উপর কনডা ব্যবহার এড়াতে চাইতে পারেন"? @ y.selivonchyk
অলিভার হু

1
আমি এইরকম কিছু সিদ্ধান্তের সাথে একমত নই। "অসঙ্গত প্রোগ্রাম আচরণ" condaইনস্টল করা সফ্টওয়্যার এবং লাইব্রেরিগুলি ব্যবহার করার জন্য আপনার প্রোগ্রামগুলি যথাযথভাবে কনফিগার না করার ফলাফল । এবং এইচপিসিতে, condaবেশিরভাগ ক্ষেত্রেই পছন্দনীয়, বাস্তবে এটি এইচপিসি প্রশাসকরা moduleসিস্টেমের মতো জিনিসগুলি প্রতিস্থাপনের জন্য ব্যবহার করছেন । এটি ব্যবহারকারী-ইনস্টল করা সফ্টওয়্যার এবং বৃহত্তর সফ্টওয়্যার বিচ্ছিন্নকরণ, এইচপিসিতে দুটি বড় সমস্যা মঞ্জুরি দেয়। কেবলমাত্র আমি অভিজ্ঞতার মুখোমুখি হ'ল অনেক এইচপিসি ফাইল সিস্টেমের একটি ডিরের ফাইল সংখ্যার উপর কঠোর সীমাবদ্ধতা থাকে এবং কনডা অনেকগুলি হাজার ফাইল তৈরি করে।
ব্যবহারকারীর 35359531

9

আমি উভয়ই ব্যবহার করি এবং (২০২০ সালের জানুয়ারী) এগুলির কিছু কিছু পৃষ্ঠাসঙ্গিক পার্থক্য রয়েছে যা আমার জন্য বিভিন্ন ব্যবহারের জন্য নিজেকে ধার দেয়। দ্বারা ডিফল্ট Conda, একটি কেন্দ্রিয় অবস্থানে আপনার জন্য পরিবেশের একটি তালিকা পরিচালনা করতে পছন্দ যেহেতু virtualenv বর্তমান ডিরেক্টরির মধ্যে একটি ফোল্ডার করে তোলে। প্রাক্তন (সেন্ট্রালাইজড) বোঝায় যে আপনি যদি উদাহরণস্বরূপ মেশিন লার্নিং করছেন এবং কেবল কয়েকটি বিস্তৃত পরিবেশ রয়েছে যা আপনি অনেকগুলি প্রকল্প জুড়ে ব্যবহার করেন এবং সেখান থেকে যে কোনও জায়গায় যেতে চান। পরেরটি (প্রতি প্রকল্প ফোল্ডারে) যদি আপনি সামান্য এক-অফ প্রকল্পগুলি করেন যা পুরোপুরি পৃথক পৃথক সেট থাকে যা প্রকল্পের নিজস্বতার সাথে আরও বেশি অন্তর্ভুক্ত থাকে তবে তা বোঝায়।

কন্ডা যে খালি পরিবেশটি তৈরি করে তা প্রায় 122MB এবং ভার্চুয়ালেনভ প্রায় 12MB, সুতরাং এটি অন্য কারণ যা আপনি কোথাও কোথাও কোন্ডা পরিবেশকে ছড়িয়ে না দেওয়া পছন্দ করতে পারেন।

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

দুই প্যাকেজ পরিচালকদের প্রাধান্য অর্জনের জন্য এই তথ্যটি দ্রুত বাসি হয়ে উঠবে বলে আমি আশা করি, তবে এগুলি আজকের ট্রেড অফস :)


ভাল ব্যাখ্যা! আপনি উভয় ব্যবহার করে কিছু অসুবিধা হয়? আপনি কি কখনও ব্যবহার করেছেন pipenv?
মিখাইল_সাম

8

আর একটি নতুন বিকল্প এবং পরিবেশ বজায় রাখার জন্য আমার বর্তমান পছন্দের পদ্ধতিটি হ'ল পাইপেনভ

এটি বর্তমানে পাইথন.আর.জিগ থেকে আনুষ্ঠানিকভাবে প্রস্তাবিত পাইথন প্যাকেজিং সরঞ্জাম


1
এটি "কী? পাইপেনভ কি?" বলেছিল, যা আমাকে reddit.com/r/Python/comments/8jd6aq/… এবং sedimental.org/t__package_gradient.html এ নিয়েছে । আমি কী ব্যবহার করব তা এখনও জানি না তবে কমপক্ষে আমি আরও ভালভাবে অবহিত। আমি মনে করি.
ম্যাট উইলকি

ভূমিকাটি দেখার পরে এবং দ্রুত ভূমিকাটি পড়ার পরে, পাইপেনভ পাইথন সংস্করণগুলি পরিচালনা করতে সক্ষম বলে মনে হচ্ছে না ...
কার্লস

@ কার্লস অ্যালকোলেয়া পিপেনভ বিভিন্ন সংস্করণগুলিও এর দ্বারা নির্দিষ্ট করতে পারবেন: pipenv --twoপাইথন 2 এবং পাইপেনভের জন্য
কুরিয়ান বেনয়

3

হ্যাঁ, condaএটির চেয়ে ইনস্টল করা অনেক সহজ virtualenvএবং বেশিরভাগটি এর পরে প্রতিস্থাপন করে।


6
যদি অ্যানাকোন্ডা ভার্চুয়াল পরিবেশটি প্রতিস্থাপন করে তবে সেগুলি ইনস্টল করার জন্য কেন নির্দেশাবলী সরবরাহ করে?
jmh

1
@ জেএমএইচ আনাকোন্ডা ভার্চুয়াল পরিবেশ প্রতিস্থাপন করে না, এটি পাইথন-নির্দিষ্ট ভার্চুয়াল পরিবেশ পরিচালন সরঞ্জামকে virtualenvআরও সাধারণ ভার্চুয়াল পরিবেশ পরিচালন সরঞ্জামের সাথে প্রতিস্থাপন করে conda। এছাড়াও, অ্যানাকোন্ডা একটি পাইথন + বিতরণ যা কন্ডা সরঞ্জাম অন্তর্ভুক্ত করে; প্রশ্ন (এবং উত্তর) শুধুমাত্র কন্ডা সম্পর্কে।
মার্ভ

3
এই উত্তরটি এর বহু বছর আগে আসা উত্তরগুলির বাইরে কিছু যুক্ত করে না।
মার্ভ

1

আমি কর্পোরেটটিতে কাজ করি, এমন বেশ কয়েকটি ফায়ারওয়ালের পিছনে এমন মেশিন রয়েছে যার উপরে আমার কোনও প্রশাসক প্রবেশাধিকার নেই

পাইথনের সাথে আমার সীমিত অভিজ্ঞতায় (২ বছর) আমি কয়েকটি লাইব্রেরি জুড়ে এসেছি (জয়ডিবিপি, স্যাসল) যা পাইপের মাধ্যমে ইনস্টল করার সময় সি ++ নির্ভরতা ত্রুটি ত্রুটি হয়েছিল: মাইক্রোসফ্ট ভিজ্যুয়াল সি ++ 14.0 প্রয়োজন। এটি "মাইক্রোসফ্ট ভিজ্যুয়াল সি ++ বিল্ড সরঞ্জামগুলি" দিয়ে পান: http://landinghub.visualstudio.com/visual-cpp-build-tools

এই কনডা দিয়ে জরিমানা ইনস্টল করা, অতএব সেই দিন থেকে আমি কনডা এনভির সাথে কাজ শুরু করেছি। তবে c.pramramfiles এর ভিতরে নির্ভরতা ইনস্টল করা থেকে কনডা বন্ধ করা সহজ নয় যেখানে আমার লেখার অ্যাক্সেস নেই।

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