নেমস্পেস প্যাকেজ কী?
একই নেমস্পেসের অধীনে একাধিক প্রজেক্ট/ডিস্ট্রিবিউশনে কোড বিতরণ করতে দেয়।
ডিরেক্টরি কাঠামো
Package-1/namespace/__init__.py
Package-1/namespace/module1/__init__.py
Package-2/namespace/__init__.py
Package-2/namespace/module2/__init__.py
পাইথন ৩.৩+ (PEP 420 - Implicit Namespace Packages) ✅
কোনো __init__.py ফাইল দরকার নেই। শুধু ডিরেক্টরি থাকলেই পাইথন অটোমেটিক্যালি নেমস্পেস প্যাকেজ হিসেবে মনে করে।
Package-1/namespace/module1/__init__.py
Package-2/namespace/module2/__init__.py
# namespace/ ডিরেক্টরিতে __init__.py নেই!
পুরনো ভার্সন (পাইথন ৩.৩ এর আগে)
প্রতিটি প্যাকেজের namespace/__init__.py-এ:
from pkgutil import extend_path
__path__ = extend_path(__path__, __name__)
সারসংক্ষেপ
- Python 3.3+:
__init__.pyবাদ দিন - এটি সেরা এবং আধুনিক পদ্ধতি - Older:
pkgutil.extend_pathব্যবহার করুন - এটি
sys.path-এ একাধিক লোকেশন থেকে একই নেমস্পেস একসাথে কাজ করতে দেয়