سؤال كيف يمكننا تغيير متغير بيئة linux في python؟


لنفترض أننا على سطر الأوامر ونعلن عن متغير بيئة:

export x=100

عندما أذهب إلى بيثون واكتب:

os.environ['x'] = '100000'

إذا عدت إلى سطر الأوامر x إقامة 100. هل هناك أي طريقة لتغيير هذا المتغير في بيثون؟


2
2017-12-12 10:26


الأصل




الأجوبة:


توجد طريقة لتغيير متغيرات البيئة من عملية تابعة. وهناك سؤال واحد بالضبط على وبالتالي.


5
2017-12-12 10:39



هذا هو الجواب الصحيح. إذا كنت في حاجة إليها حقًا ، فيجب أن تبدأ بنصيحة shell ، أو python ، وأن تتواصل مع python الخاص بك (هناك طرق متعددة للقيام بـ IPC ، وقم بإجراء بعض الأبحاث واكتشاف ما يناسبك). - Avindra Goolcharan


هناك الحل إلى ما تريد تحقيقه. بافتراض استخدامك لـ bash كصدفة ، يمكنك كتابة التغييرات على ملفات التهيئة bash (اخترتها ~/.bashrc):

#!/usr/bin/python
import os
os.system('bash -c \'echo "export a=100000" >> ~/.bashrc\'')
os.system('bash -c \'source ~/.bashrc\'')

أنت في حاجة للإرتفاع bash -c، حيث يستخدم python sh كقاعدة الافتراضية.


فكرة مشتقة من سؤال مماثل على SO(مختلف عن واحد صياد يستعين بالبزاة مرسل).


1
2017-12-12 11:06



هذا إلحاقي "a = 100000" إلى ملف ~ / .bashrc ، لكن "المصدر" لا يعمل. إذا خرجت من python وقمت بما يلي: "صدى $ a" ، المتغير ليس موجودًا. - Tickon