Mac-Osx

Mac OS X:從 python 腳本中更改 $PATH

  • August 25, 2014

我有一堆 python 腳本。其中一個安裝需要將其路徑添加到 $PATH 的軟體(顛覆)。安裝後,我希望下一個腳本使用該軟體。如果我export PATH=/opt/subversion/bin:$PATH在第一個和第二個腳本之間執行 bash,一切都很好。但是,如果我添加os.system( 'export PATH=/opt/subversion/bin:$PATH' )為第一個腳本(安裝顛覆)的最後一個命令,$PATH它退出後保持不變。

是否有任何方法可以從 python 腳本中更改 $PATH 以便在腳本完成後保持更改(當然,在單個 bash 會話中,我知道/etc/profile)。

os.system()產生一個子外殼。所以它不知道您現有的外殼。

您當然可以在執行命令時設置路徑(不導出)。IE:

PATH="$PATH:/opt/subversion/bin" /command/to/run

哦,os.system() 正在貶值。你應該切換到subprocess.Popen().

一般來說,這是不可能的。一個程序不能改變另一個程序的環境。

父程序可以預設它產生的子程序的環境,但實際上沒有任何方法可以讓一個程序影響另一個程序的環境,除非這些應用程序是專門為允許這樣做而設計的。

引用自:https://serverfault.com/questions/37954