কমান্ড লাইন বিকল্পের –m বিকল্পটি একটি প্রদত্ত মডিউল অনুসন্ধান করে এবং এটিকে __main__ মডিউল হিসাবে চালায়। এই প্রক্রিয়াটি পাইথনের স্ট্যান্ডার্ড মডিউল থেকে রানপি মডিউল দ্বারা অভ্যন্তরীণভাবে সমর্থিত যা ফাইল সিস্টেমের পরিবর্তে পাইথন মডিউল নেমস্পেস ব্যবহার করে স্ক্রিপ্টগুলিকে অবস্থিত করার অনুমতি দেয়৷
এই মডিউল দুটি ফাংশন সংজ্ঞায়িত করে
run_module()
এই ফাংশনটি নির্দিষ্ট মডিউলের কোড নির্বাহ করে এবং ফলস্বরূপ মডিউল গ্লোবাল ডিকশনারি ফেরত দেয়।
mod_name আর্গুমেন্ট একটি পরম মডিউল নাম হওয়া উচিত। যদি মডিউল নামটি একটি সাধারণ মডিউলের পরিবর্তে একটি প্যাকেজকে নির্দেশ করে, তাহলে সেই প্যাকেজটি আমদানি করা হয় এবং সেই প্যাকেজের মধ্যে __main__ সাবমডিউলটি কার্যকর করা হয় এবং ফলস্বরূপ মডিউল গ্লোবাল অভিধানটি ফিরে আসে৷
বিশেষ গ্লোবাল ভেরিয়েবল __name__, __spec__, __file__, __cached__, __loader__ এবং __package__ মডিউল কোড কার্যকর করার আগে গ্লোবাল অভিধানে সেট করা হয়।
__name__ mod_name + '.__main__' এ সেট করা হয় যদি নামকৃত মডিউলটি একটি প্যাকেজ হয় এবং অন্যথায় mod_name আর্গুমেন্টে।
__file__, __cached__, __loader__ এবং __package__ মডিউল স্পেকের উপর ভিত্তি করে স্বাভাবিক হিসাবে সেট করা হয়েছে।
run_path()
এই ফাংশনটি প্রদত্ত পাথে ফাইলের কোড নির্বাহ করে এবং ফলস্বরূপ মডিউল গ্লোবাল ডিকশনারী প্রদান করে। সরবরাহ করা পথটি একটি পাইথন সোর্স ফাইল, একটি সংকলিত বাইটকোড ফাইল বা একটি __main__ মডিউল ধারণকারী একটি বৈধ sys.path এন্ট্রি (যেমন একটি শীর্ষ-স্তরের __main__.py ফাইল ধারণকারী একটি zipfile) উল্লেখ করতে পারে।
বিশেষ গ্লোবাল ভেরিয়েবল __name__, __spec__, __file__, __cached__, __loader__ এবং __package__ মডিউল কোড কার্যকর করার আগে গ্লোবাল অভিধানে সেট করা হয়।
এই ঐচ্ছিক যুক্তিটি None না হলে __name__ কে run_name এ সেট করা হয় এবং অন্যথায় '
উদাহরণ
নিম্নলিখিত স্ক্রিপ্টটি runpyeample.py
হিসাবে সংরক্ষণ করুন#runpy example def add(x,y): return x+y def main(): x,y = 10,20 print (add(x,y)) return if __name__=='__main__': main()
উপরের উদাহরণ কার্যকর করার স্বাভাবিক প্রক্রিয়াটি নিম্নরূপ
>>> import runpyexample as rp >>> rp.main() 30 >>>
যাইহোক, আমরা এখন এটিকে ইম্পোর্ট না করেই চালানোর জন্য রানপি মডিউল ব্যবহার করি।
>>> import runpy >>> runpy.run_module('runpyexample', run_name='__main__') 30
আপনি run_path() ফাংশনও ব্যবহার করতে পারেন।
>>> runpy.run_path('runpyexample.py', run_name='__main__') 30
আগেই বলা হয়েছে, রানপি পাইথন কমান্ড লাইনের –m সুইচ সমর্থন করে।
E:\python37>python -m runpyexample 30