簡體   English   中英

我們能否將由python腳本修改的環境變量傳遞給外殼?

[英]Can we pass a environment variable modified by python script to the outer shell?

對於以下python腳本:

import os
os.system('PYTHONPATH=\user\...')
os.system('export PYTHONPATH')
....

無論如何,執行此腳本后,我們可以將PYTHONPATH變量“導出”到外殼程序嗎?

不,這是不可能的。 啟動Python進程時,它將獲得自己的環境副本,該副本是從父外殼復制的。 Python進程只能修改私有副本,並且更改不會傳播回父進程。

如果您想做這樣的事情,那么最好的辦法就是打印執行所需的環境變量更改所需的shell命令,例如

print "export PYTHONPATH=$PYTHONPATH:..."

並使用運行腳本

eval "$(python myscript.py)"

斯文的答案是一個好答案。

根據您的要求,另一種可能的方法是從Python腳本調用新的Shell進程。 由於新的shell是Python進程的子進程,因此它將繼承任何環境變量。

顯然,這並不總是您想要做的,但這是一種選擇。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM