যদি আমার কাছে পাইথন স্ক্রিপ্ট থাকে যার জন্য পাইথনের কমপক্ষে একটি নির্দিষ্ট সংস্করণ প্রয়োজন হয়, স্ক্রিপ্টটি চালু করার জন্য পাইথনের পূর্ববর্তী সংস্করণটি ব্যবহার করে করুণভাবে ব্যর্থ হওয়ার সঠিক উপায় কী?
ত্রুটি বার্তা এবং প্রস্থান করার জন্য আমি কীভাবে তাড়াতাড়ি নিয়ন্ত্রণ পেতে পারি?
উদাহরণস্বরূপ, আমার কাছে একটি প্রোগ্রাম রয়েছে যা টের্নি অপারেটর (2.5 এ নতুন) এবং "উইথ" ব্লক (2.6 তে নতুন) ব্যবহার করে। আমি একটি সাধারণ সামান্য দোভাষী-সংস্করণ চেকার রুটিন লিখেছিলাম যা স্ক্রিপ্টটি প্রথম বলেছিল ... এটি এ পর্যন্ত না পেলে। পরিবর্তে, স্ক্রিপ্টটি অজগর সংকলনের সময় ব্যর্থ হয়, আমার রুটিনগুলি এমনকি কল করার আগেই। সুতরাং স্ক্রিপ্টটির ব্যবহারকারীর বেশ কিছু অস্পষ্ট সিনা্যাক্স ত্রুটি ট্রেসব্যাকস দেখতে পেয়েছেন - যার পক্ষে একজন বিশেষজ্ঞের অনুমান করা দরকার যে এটি কেবল পাইথনের ভুল সংস্করণটি চালানোর ক্ষেত্রে।
পাইথনের সংস্করণটি কীভাবে পরীক্ষা করতে হয় তা আমি জানি। সমস্যাটি হ'ল পাইথনের পুরানো সংস্করণগুলিতে কিছু বাক্য গঠন অবৈধ। এই প্রোগ্রামটি বিবেচনা করুন:
import sys
if sys.version_info < (2, 4):
raise "must use python 2.5 or greater"
else:
# syntax error in 2.4, ok in 2.5
x = 1 if True else 2
print x
২.৪ এর অধীনে চালিত হওয়ার সময় আমি এই ফলাফলটি চাই
$ ~/bin/python2.4 tern.py
must use python 2.5 or greater
এবং এই ফলাফল নয়:
$ ~/bin/python2.4 tern.py
File "tern.py", line 5
x = 1 if True else 2
^
SyntaxError: invalid syntax
(সহকর্মীর পক্ষে চ্যানেলিং।)