আমি কেবল 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এবং pipenv। pyvenvঅবচয় করা হয়। pyenvযেখানে ব্যবহৃত হয় প্রায়শই ব্যবহৃত হবে বলে মনে হয় virtualenvতবে আমি এ থেকে দূরে থাকব কারণ আমি মনে করি venvযে pyenvএটি যা তৈরি করা হয়েছে তাও করে ।
venvব্যবহারকারী-ইনস্টলযোগ্য লাইব্রেরি সহ শেলটিতে ভার্চুয়াল পরিবেশ তৈরি করা হয়েছে যা তাজা এবং স্যান্ডবক্সযুক্ত রয়েছে , এবং এটি বহু-পাইথন নিরাপদ । টাটকা কারণ ভার্চুয়াল পরিবেশগুলি কেবলমাত্র স্ট্যান্ডার্ড লাইব্রেরি দিয়ে অজগর দিয়ে পাঠানো হয় , ভার্চুয়াল পরিবেশ সক্রিয় থাকাকালীন আপনাকে অন্য কোনও গ্রন্থাগার পুনরায় ইনস্টল করতে হবে । স্যান্ডবক্সযুক্ত কারণ এই নতুন লাইব্রেরি ইনস্টলগুলির কোনও ভার্চুয়াল পরিবেশের বাইরে দৃশ্যমান নয়, তাই আপনি পুরো পরিবেশটি মুছতে পারেন এবং আপনার বেস পাইথন ইনস্টলটিকে প্রভাবিত করার বিষয়ে চিন্তা না করেই আবার শুরু করতে পারেন। ব্যবহারকারী-ইনস্টলযোগ্য লাইব্রেরি কারণ ভার্চুয়াল পরিবেশের লক্ষ্য ফোল্ডারটি তৈরি করা হয়pip installsudoকিছু ডিরেক্টরিতে আপনার ইতিমধ্যে মালিকানা রয়েছে, সুতরাং sudoএটিতে লাইব্রেরি ইনস্টল করার জন্য আপনার অনুমতি লাগবে না । অবশেষে এটি বহু-অজগর নিরাপদ , যেহেতু ভার্চুয়াল পরিবেশগুলি সক্রিয় হয়, তখন শেলটি কেবলমাত্র অজগর সংস্করণ (3.4, 3.5 ইত্যাদি) দেখতে পায় যা সেই ভার্চুয়াল পরিবেশটি তৈরি করতে ব্যবহৃত হয়েছিল।
pyenvঅনুরূপ venvযে এটা করতে দেয় আপনি একাধিক পাইথন পরিবেশের পরিচালনা করুন। তবে pyenvআপনি সহজেই রোলব্যাক গ্রন্থাগারটি কিছু শুরুর স্টেটে ইনস্টল করতে পারবেন না এবং adminলাইব্রেরি আপডেট করার জন্য আপনার সম্ভবত কিছু সুযোগের প্রয়োজন হবে । সুতরাং আমি মনে করি এটি ব্যবহার করা ভাল venv।
বিগত কয়েক বছরে আমি বিল্ড সিস্টেমগুলিতে অনেকগুলি সমস্যা পেয়েছি (ইমাস প্যাকেজস, পাইথন স্ট্যান্ডেলোন অ্যাপ্লিকেশন বিল্ডার, ইনস্টলার ...) যা শেষ পর্যন্ত সমস্যাগুলির মধ্যে আসে virtualenv। আমি মনে করি অজগরটি আরও ভাল প্ল্যাটফর্ম হয়ে উঠবে যখন আমরা এই অতিরিক্ত বিকল্পটি সরিয়ে ফেলব এবং কেবল ব্যবহার করব venv।