PATH
পাইথন ব্যবহার করে একটি প্ল্যাটফর্মের স্বাধীন উপায়ে পরিবেশ পরিবর্তনশীলকে পরিবর্তন করার কোনও উপায় আছে কি ?
এর মতো কিছু os.path.join()
?
উত্তর:
আপনি পরিবর্তন করতে সক্ষম হওয়া উচিত os.environ
।
যেহেতু os.pathsep
বিভিন্ন পাথ পৃথক করার চরিত্রটি তাই প্রতিটি নতুন পাথ যুক্ত করার জন্য আপনার এটি ব্যবহার করা উচিত:
os.environ["PATH"] += os.pathsep + path
বা, যদি তালিকায় যুক্ত করার জন্য কয়েকটি পথ থাকে:
os.environ["PATH"] += os.pathsep + os.pathsep.join(pathlist)
যেমনটি আপনি উল্লেখ করেছেন, os.path.join
প্রতিটি পৃথক পাথের জন্যও আপনাকে পৃথক অংশ থেকে এগুলি নির্মাণ করতে হবে এমন ক্ষেত্রে ব্যবহার করতে পারেন।
os.pathsep
আমি উল্লেখ করেছেন ( পথের কাছে নির্দিষ্ট)?
os.path.sep != os.pathsep
।
দয়া করে মনে রাখবেন যে os.environ
এটি আসলে একটি অভিধান নয়। এটি একটি বিশেষ অভিধানের মতো বস্তু যা সেন্টেনভ ব্যবহার করে বর্তমান প্রক্রিয়ায় বাস্তবে পরিবেশের ভেরিয়েবল সেট করে ।
>>> os.environ.__class__
<class os._Environ at 0x100472050>
>>> import os
>>> os.environ["HELLO"] = "WORLD"
>>> os.getenv("HELLO")
'WORLD'
এর অর্থ হ'ল PATH
(এবং অন্যান্য পরিবেশের ভেরিয়েবলগুলি) একই প্রক্রিয়াতে সি কোড চালানোর জন্য দৃশ্যমান হবে ।
(যেহেতু মন্তব্যে ফরম্যাটিং থাকতে পারে না, তাই আমি এটি একটি উত্তর দিতে হবে, তবে আমি মনে করি এটি তৈরি করা একটি গুরুত্বপূর্ণ বিষয় export 'রফতানির' সমতুল্য না হওয়ার বিষয়ে মন্তব্যটিতে এটি একটি মন্তব্য ।)
পাইথনের পরিবেশগত পরিবর্তনশীলগুলির সাথে সচেতন হওয়ার যে সতর্কতা তা "এক্সপোর্ট" শেল কমান্ডের সমতুল্য নয়। বর্তমান প্রক্রিয়াতে ইনজেকশন দেওয়ার কোনও উপায় নেই, কেবল শিশু প্রক্রিয়া।
os.system
, os.popen
বা subprocess.Popen
তারপর প্রক্রিয়া আরম্ভ করার জন্য পাইথন অ্যাপ্লিকেশন থেকে ব্যবহার করা উচিত। অন্যথায় এটি বেশ অর্থহীন।
export
একটি ভেরিয়েবলের সকলের পরিবেশে অনুলিপি তৈরি করে শিশু প্রক্রিয়া , কিন্তু পিতামাতার প্রক্রিয়া উপর কোন প্রভাব নেই।