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