2017-02-03 49 views
0

因此我知道subprocess如何工作並使用它很多,但我遇到了一個奇怪的問題。我需要執行一些環境變量的導出。原因是某些程序(黑盒)執行的程序看起來好像在子shell中運行,所以它無法訪問環境變量,但它可以訪問我的所有文件。將環境傳遞給父項的python shell腳本執行

我不能硬編碼環境變量,所以我想source.其中有export命令的文件。但是,如果我在子進程中使用source.這個文件,它將不會對其父進程產生任何影響。在這種情況下,我需要除subprocess之外的一些函數,它們可以在不創建子進程的情況下執行shell命令(如果存在)。另一個問題是子進程沒有適當的權限來讀取文件。

而且通過os複製環境變量也是不可能的。

除了subprocess還有什麼?或者還有其他一些解決方法?

回答

1

恕我直言,最簡單的解決方案在於創建一個新的shell腳本(我們稱之爲run_black_box.sh),它源自安裝腳本(假設它命名爲setup.sh)以初始化環境,然後調用black_box程序。

這裏是run_black_box.sh一個可能的內容:

#/bin/bash 
source setup.sh 
black_box 

的你可以通過run_black_box.shsubprocess執行。

相關問題