你好,我嘗試使用python設置環境變量。我的python文件看起來像這樣。使用subshell設置環境變量
#!/usr/bin/python2.7
import os
os.system("check")
請看這裏文件檢查是這樣的csh文件。
#!usr/bin/csh
setenv VARIABLE 1
但是當我從我的shell環境變量檢查沒有設置。我明白,當我調用os.system時,它會產生另一個子shell並在那裏設置變量。我試着直接運行csh文件和相同的問題。我也試過了。
os.system("setenv VARIABLE 1")
它會拋出錯誤命令找不到。這是我之前將命令放入diff文件並調用它的原因。
所有我需要做的是設置從我的python腳本在當前shell
您不能。子進程不能改變父進程的環境。 – chepner
相關(將重複,但爲csh和bash之間的區別):https://stackoverflow.com/questions/41708458/assign-environment-variables-from-bash-script-to-current-session-from-python - 注意根據任意內容使用NUL定界流來確保安全。 –
我認爲你想要做的是不可能的 - https://stackoverflow.com/questions/263005/is-it-possible-to-change-the-environment-of-a-parent-process-in-蟒蛇。如果你想爲一個新的shell設置一個環境變量,那麼它看起來像設置'os.environ ['VARIABLE'] = 1'工作。 (至少用'subprocess') – OldGeeksGuide