[英]Add in $PATH for linux environment using python script
需要將此路徑-> / home / ubuntu / folderA添加到linux ubuntu中的PATH環境變量中。
更新資料
print(os.environ["PATH"])
path = "/home/ubuntu/folderA"
os.environ["PATH"] += os.pathsep + path
print(os.environ["PATH"])
#Can see the newly added path here when i print
但是,我仍然無法訪問路徑。
當我執行printenv
,我仍然看不到路徑。
嘗試了os.getenv("PATH")
以查看路徑是否已更新,但仍然是同一回事
如果我使用以下命令手動執行此操作,則使用printenv
,路徑在那里。
export PATH=$PATH:/home/ubuntu/folderA
我需要的是使用python腳本中的第一個方法更新路徑,然后繼續其余方法。
希望有人可以看看。 謝謝。
最終更新:原來我運行python腳本時追加了路徑。 只是在腳本完成之后,該路徑將不會保留。 因此,當我執行printenv
,路徑未顯示出來。
您可以使用os.environ["PATH"]
。
檢查此問題以獲取想法。
sys.path
是
list
類型 。
因此,您應該使用內置的
append()
方法添加一個
string
。
import sys sys.path.append("/home/ubuntu/folderA")
os.environ\\['PATH'\\]
投票使我進一步研究了sys.path
和os.environ\\['PATH'\\]
之間的區別。
要為當前用戶更新路徑變量,請使用os.environ ['PATH']。
需要注意的一點是path變量是一個字符串對象,在循環內對其進行更新將消耗內存。 如果要從列表更新,請使用以下方法。
# os.pathsep is the character that separates different paths in the path variable
os.environ["PATH"] += os.pathsep + os.pathsep.join(pathlist)
這是因為在類似Unix的系統上,每個進程的環境都是唯一的。
發生的是,當您運行腳本時,操作系統會將當前環境變量復制到新環境中 。 在這個新環境中,您的腳本會修改PATH變量。 腳本退出后,該環境將被破壞。
嘗試運行此命令以查看我在說什么:
path = "/home/ubuntu/folderA"
os.environ["PATH"] += os.pathsep + path
print(os.environ["PATH"])
os.system('printenv')
您應該看到已修改的PATH變量。
如果要修改PATH變量以進行進一步的處理,則必須執行以下操作之一。
從腳本啟動bash shell。 使用os.system('bash')
將啟動一個子shell進程,該進程將從腳本繼承PATH變量。
首選方法是將腳本更改為類似這樣的內容
path = "/home/ubuntu/folderA" print('export PATH=' + os.environ["PATH"] += os.pathsep + path)
然后像這樣執行你的腳本
eval $(python path.py)
這將在啟動腳本的shell中獲得修改后的路徑。 請注意,在Windows類型系統上,情況完全不同
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.