यदि आप पिछड़े पर्यावरण प्रचार कह रहे हैं, क्षमा करें, तो आप नहीं कर सकते। यह एक सुरक्षा मुद्दा है। हालांकि, अजगर से सीधे स्रोत पर्यावरण निश्चित रूप से मान्य है। लेकिन यह मैन्युअल प्रक्रिया कम या कम है।
import subprocess as sp
SOURCE = 'your_file_path'
proc = sp.Popen(['bash', '-c', 'source {} && env'.format(SOURCE)], stdout=sp.PIPE)
source_env = {tup[0].strip(): tup[1].strip() for tup in map(lambda s: s.strip().split('=', 1), proc.stdout)}
तब आपके पास source_env
में आपकी आवश्यकता है।
आप (, जो अनुशंसित नहीं है के बाद से source_env
आप को साफ रखता है) इसे वापस अपने स्थानीय पर्यावरण के लिए लिखने के लिए की जरूरत है:
import os
for k, v in source_env.items():
os.environ[k] = v
एक और छोटे ध्यान यहाँ भुगतान किया जाना चाहिए, के बाद से मैं है यहां bash
कहा जाता है, आपको उम्मीद करनी चाहिए कि नियम यहां भी लागू किए गए हैं। तो यदि आप अपने चर को देखना चाहते हैं, तो आपको उन्हें निर्यात करने की आवश्यकता होगी।
export VAR1='see me'
VAR2='but not me'
आपका क्या मतलब है? क्या आपका मतलब है कि आप पर्यावरण चर कैसे सेट करते हैं? – jonrsharpe
मैं पाइथन लिपि के अंदर से 'स्रोत myFile.sh' को कॉल करना चाहता हूं और फिर – lafferc
चर का उपयोग करना चाहता हूं तो आप बस जानना चाहते हैं कि पायथन से कमांड कैसे चलाएं? क्या आपने * उस * की खोज करने की कोशिश की है? * "लोड पर्यावरण चर" * लगता है कि आप पूरी तरह से आकस्मिक ** जो आप प्राप्त करने की कोशिश कर रहे हैं। – jonrsharpe