![](/img/trans.png)
[英]Can't modify environment variable(assigned in Shell Script) using 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.