@ গাইন্ডল দ্বারা সরবরাহিত গুইডো মেলের সাহায্যে আমরা স্ট্যান্ডার্ড আমদানি প্রক্রিয়াটি প্রতিটি সদস্যের মডিউল অনুসন্ধান করার চেষ্টা হিসাবে বুঝতে পারি sys.pathএবং এই দেখার ফলে (ফাইলটি পিএমওটব্লিউ মডিউল এবং আমদানিতে আরও বিশদ রয়েছে ) হিসাবে ফাইল করতে পারি । সুতরাং যদি মডিউলটি sys.pathফলাফলের একটি নিখুঁত পথে অবস্থিত হয় তবে তা পরম, তবে এটি যদি ফলাফলের মধ্যে কোনও আপেক্ষিক পথে অবস্থিত হয় তবে এটি sys.pathআপেক্ষিক।
এখন site.pyপ্রারম্ভিক ফাইলটি sys.pathপ্রাথমিক ব্যতীত কেবলমাত্র নিখুঁত পাথ সরবরাহ করার যত্ন নেয় '', সুতরাং আপনি যদি পাইথোনপথ (যার পথটিও পূর্বনির্ধারণের পূর্বে নিখুঁতভাবে তৈরি করা হয় sys.path) সেট করা ব্যতীত অন্য কোনও উপায়ে এটি পরিবর্তন না করেন তবে আপনি সর্বদা একটি পরম পাবেন পাথ, কিন্তু যখন মডিউলটি বর্তমান ডিরেক্টরি মাধ্যমে অ্যাক্সেস করা হয়।
এখন আপনি যদি মজার উপায়ে sys.path চালিত হন তবে আপনি কিছু পেতে পারেন।
উদাহরণ হিসাবে আপনি একটি নমুনা মডিউল আছে যদি foo.pyএ /tmp/কোড দিয়ে:
import sys
print(sys.path)
print (__file__)
আপনি যদি / টেম্পে যান তবে আপনি পাবেন:
>>> import foo
['', '/tmp', '/usr/lib/python3.3', ...]
./foo.py
যখন মধ্যে /home/userআপনার যোগ করা যদি /tmpআপনার PYTHONPATHআপনি পান:
>>> import foo
['', '/tmp', '/usr/lib/python3.3', ...]
/tmp/foo.py
এমনকি আপনি যুক্ত করলেও ../../tmpএটি স্বাভাবিক হবে এবং ফলাফলটি একই।
তবে যদি PYTHONPATHআপনি সরাসরি কিছু মজাদার পথ ব্যবহার না করেন তবে কারণ হিসাবে মজার হিসাবে ফল পাবেন।
>>> import sys
>>> sys.path.append('../../tmp')
>>> import foo
['', '/usr/lib/python3.3', .... , '../../tmp']
../../tmp/foo.py
গুইডো উপরোক্ত উদ্ধৃত থ্রেডে ব্যাখ্যা করেছেন, পাইথন কেন সমস্ত প্রবেশকে পরম পথে রূপান্তরের চেষ্টা করে না:
আমরা প্রতিটি আমদানিতে getpwd () কল করতে চাই না .... getpwd () তুলনামূলকভাবে ধীর এবং কখনও কখনও পুরোপুরি ব্যর্থ হতে পারে,
আপনার পথটি যেমন হয় তেমন ব্যবহার করা হয় ।