macOS-এ এডিটেবল মোডে একটি লোকাল পাইথন প্রজেক্ট ইনস্টল করতে, Terminal খুলুন, প্রজেক্ট ডিরেক্টরিতে যান, একটি ভার্চুয়াল এনভায়রনমেন্ট তৈরি ও সক্রিয় করুন, তারপর python -m pip install -e . চালান। এটি পাইথন ইমপোর্টগুলোকে আপনার কার্যকরী সোর্স ট্রির সাথে লিঙ্ক করে, যাতে পুনরায় ইনস্টল করা ছাড়াই নতুন ইন্টারপ্রেটার সেশনে পাইথন ফাইলের পরিবর্তনগুলো পাওয়া যায়। প্রজেক্টটির এখনও প্যাকেজিং মেটাডেটা প্রয়োজন, এবং এর সঠিক এডিটেবল আচরণ নির্ভর করে এর বিল্ড ব্যাকএন্ডের ওপর।
এডিটেবল ইনস্টল কী কাজ করে
একটি সাধারণ ইনস্টলেশন প্রজেক্টটিকে নির্বাচিত পাইথন এনভায়রনমেন্টে একটি ইনস্টল করা প্যাকেজ হিসেবে রাখে। অন্যদিকে একটি এডিটেবল ইনস্টলেশন ডেভেলপমেন্ট ডিরেক্টরির সোর্স কোডকে পাইথনের ইমপোর্ট পাথে উপলব্ধ করে। এটি তখন কার্যকর হয় যখন আপনি সেই প্রজেক্টটিতে লোকালি পরিবর্তন করছেন; এর মানে এই নয় যে প্রতিটি প্রজেক্ট ফাইল বা নন-পাইথন রিসোর্স স্বয়ংক্রিয়ভাবে একইভাবে হ্যান্ডেল করা হয়। pip-এর লোকাল প্রজেক্ট ইনস্টল গাইড
এডিটেবল মোড ডিপেন্ডেন্সি সংক্রান্ত পরিবর্তনগুলোকেও অদৃশ্য করে দেয় না। pip প্রজেক্টের ঘোষিত ডিপেন্ডেন্সিগুলো স্বাভাবিক নিয়মেই ইনস্টল করে, যদি না আপনি --no-deps ব্যবহার করেন। পাইথন সোর্স কোডের পরিবর্তনগুলো সাধারণত পরবর্তী রানেই দৃশ্যমান হয়, কিন্তু প্রজেক্ট মেটাডেটা, জেনারেট করা কমান্ড-লাইন স্ক্রিপ্ট বা কম্পাইল করা কোডের পরিবর্তনের ক্ষেত্রে পুনরায় ইনস্টল বা পুনরায় বিল্ড করার প্রয়োজন হতে পারে। পাইথন প্যাকেজিং ব্যবহারকারী গাইড: প্রজেক্ট প্যাকেজিং এবং ডিস্ট্রিবিউটিং
macOS-এ একটি ভার্চুয়াল এনভায়রনমেন্ট প্রস্তুত করুন
Terminal-এ, প্রজেক্টের রুট ফোল্ডারে যান, যে ডিরেক্টরিতে pyproject.toml বা সমর্থিত পুরোনো setup.py রয়েছে। নিচের cd কমান্ডটি ধরে নিচ্ছে যে ফোল্ডারটি আপনার হোম ডিরেক্টরিতে রয়েছে; যদি পাথে স্পেস থাকে তবে পাথটি কোটেশনের মধ্যে রাখুন।
cd "$HOME/path/to/my-project"
python3 --version
python3 -m venv .venv
source .venv/bin/activate
python -m pip --version
ভার্চুয়াল এনভায়রনমেন্ট এই প্রজেক্টের ইনস্টল করা প্যাকেজগুলোকে অন্যান্য পাইথন এনভায়রনমেন্ট থেকে আলাদা রাখে। অ্যাক্টিভেশনের পর, python কমান্ডটি এনভায়রনমেন্টের ইন্টারপ্রেটারকে নির্দেশ করবে, তাই python -m pip ব্যবহার করলে তা pip-কে সেই ইন্টারপ্রেটারের সাথে যুক্ত করে। পাইথনের ডকুমেন্টেশনে venv-কে আইসোলেটেড এনভায়রনমেন্ট তৈরির মাধ্যম হিসেবে বর্ণনা করা হয়েছে এবং POSIX শেলের জন্য অ্যাক্টিভেশন কমান্ড উল্লেখ করা হয়েছে, যার মধ্যে বর্তমান macOS Terminal সেটআপগুলোতে ডিফল্ট হিসেবে ব্যবহৃত শেলও অন্তর্ভুক্ত। পাইথন ডকুমেন্টেশন: venv
যদি python3 খুঁজে না পাওয়া যায়, তবে প্রথমে একটি Python 3 ইন্টারপ্রেটার ইনস্টল বা সন্ধান করুন; macOS নিশ্চয়তা দেয় না যে এই কমান্ডের অধীনে ডেভেলপমেন্টের জন্য প্রস্তুত পাইথন উপলব্ধ থাকবে। প্রজেক্টটি যদি কোনো সমর্থিত পাইথন সংস্করণ নির্দিষ্ট করে দেয়, তবে .venv তৈরি করতে সেই সংস্করণটি ব্যবহার করুন। প্রজেক্ট এনভায়রনমেন্টের মাধ্যমে কাজ করা সম্ভব হলে সিস্টেম-ম্যানেজড পাইথনে প্যাকেজ ইনস্টল করা এড়িয়ে চলুন।
এডিটেবল মোডে প্রজেক্টটি ইনস্টল করুন
এনভায়রনমেন্ট সক্রিয় থাকা অবস্থায় এবং Terminal প্রজেক্টের রুটে রেখে চালান:
python -m pip install -e .
এখানে, -e মানে এডিটেবল এবং . মানে বর্তমান ডিরেক্টরি। pip আশা করে যে একটি লোকাল প্রজেক্ট ডিরেক্টরিতে pyproject.toml বা setup.py থাকবে। আধুনিক প্রজেক্টগুলো সাধারণত pyproject.toml-এ একটি বিল্ড ব্যাকএন্ড ঘোষণা করে; pip সেই ব্যাকএন্ডকে এডিটেবল ইনস্টলেশন সম্পাদন করতে বলে। এটি সঠিকভাবে কাজ করার জন্য ব্যাকএন্ডটিকে অবশ্যই এডিটেবল-ইনস্টল ইন্টারফেস সমর্থন করতে হবে। pip install রেফারেন্স, pip বিল্ড সিস্টেম ইন্টারফেস
অন্য কোনো ডিরেক্টরি থেকে ইনস্টল করতে, .-এর পরিবর্তে সেটির পাথ দিন, উদাহরণস্বরূপ python -m pip install -e "$HOME/path/to/my-project"। পাথ কোটেশনের মধ্যে রাখলে তা স্পেস এবং শেলের মেটাক্যারেক্টারকে সুরক্ষিত রাখে। এই ইনস্টলেশনটি আপনার ব্যবহৃত python কমান্ডের সাথে সম্পর্কিত পাইথন এনভায়রনমেন্টের ক্ষেত্রে প্রযোজ্য হবে।
এনভায়রনমেন্ট নিশ্চিত করুন এবং ত্রুটি নির্ণয় করুন
pip-এর ইনস্টল করা প্রজেক্ট ভিউ পরীক্ষা করে নিশ্চিত করুন যে এটি প্যাকেজ এবং এর এডিটেবল প্রজেক্ট লোকেশন তালিকাভুক্ত করছে:
python -m pip list
তারপর অ্যাক্টিভেট করা এনভায়রনমেন্ট থেকে পাইথন শুরু করুন এবং ডকুমেন্টেশনে উল্লেখিত ইমপোর্ট নাম ব্যবহার করে প্যাকেজটি ইমপোর্ট করার চেষ্টা করুন। ইমপোর্টের নামটি প্রজেক্টের ডিস্ট্রিবিউশন নাম থেকে আলাদা হতে পারে, তাই অনুমান না করে প্রজেক্টের README বা প্যাকেজ ডিরেক্টরি দেখুন। যদি ইমপোর্টটি শুধুমাত্র একটি নির্দিষ্ট ফোল্ডার থেকেই কাজ করে, তবে নিশ্চিত করুন যে ইনস্টলেশনটি সঠিক প্রজেক্ট রুটকে নির্দেশ করছে এবং প্যাকেজটি তার ব্যাকএন্ড দ্বারা শনাক্ত করার জন্য কনফিগার করা হয়েছে।
যদি pip বলে যে ডিরেক্টরিটি ইনস্টলযোগ্য নয়, তবে যাচাই করুন যে আপনি সঠিক রুটে আছেন এবং এতে pyproject.toml বা setup.py রয়েছে। বিল্ড ব্যাকএন্ড যদি এডিটেবল মোড প্রত্যাখ্যান করে, তবে প্রজেক্টের ব্যাকএন্ডের ডকুমেন্টেশন অনুযায়ী সেটিকে আপডেট বা কনফিগার করুন; সব পুরোনো বা কাস্টম ব্যাকএন্ড এডিটেবল ইনস্টল সমর্থন করে না। আধুনিক pyproject.toml প্রজেক্টের জন্য, pip ব্যাকএন্ডের PEP 660 এডিটেবল হুক ব্যবহার করে। pip বিল্ড সিস্টেম ইন্টারফেস
যদি কোনো প্রজেক্টের পরিবর্তনে নতুন ডিপেন্ডেন্সি, এন্ট্রি পয়েন্ট যোগ হয় বা মেটাডেটা পরিবর্তিত হয়, তবে পুনরায় python -m pip install -e . চালান। কম্পাইল করা এক্সটেনশনের ক্ষেত্রে, প্রজেক্টের ডকুমেন্টেশনে উল্লেখিত বিল্ড ধাপগুলোও চালান। pip উল্লেখ করে যে এডিটেবল এবং নিয়মিত ইনস্টলেশন ভিন্ন আচরণ করতে পারে, তাই এডিটেবল ইনস্টল মূলত লোকাল ডেভেলপমেন্টের জন্য; প্যাকেজ বিতরণের আগে সাধারণ ইনস্টলেশন পাথ যাচাই করার বিকল্প এটি নয়। pip-এর লোকাল প্রজেক্ট ইনস্টল গাইড
উৎসসমূহ
Local project installs — pip
Packaging and distributing projects — Python Packaging Authority
pip install — pip
Build System Interface — pip
venv — Creation of virtual environments — Python Software Foundation