[英]Path environment variables in Python and Mac OS X when using subprocess.call
Python (2.6.6 -- EPD 6.3-1 (32-bit)) 使用時找不到二進制可執行文件
call(cmmd, shell=True)
在 Mac OS 10.6.8 上,從 Eclipse/Pydev 啟動,並返回 sh 找不到可執行文件。 跑步
print os.environ['PATH']
返回默認路徑:
/usr/bin:/bin:/usr/sbin:/sbin
現在,從任何 shell 運行這個可執行文件或腳本都不是問題,它的路徑被添加到 /etc/profile、~/.profile 和 /etc/paths
關於如何配置 Pydev 的任何想法? 運行配置似乎是有序的,即它選擇了正確的 python 版本。
注意:為清楚起見進行了編輯
登錄 shell 和未登錄 shell 之間存在差異。 When run by python launched from Eclipse, your shell will start as a non-login shell, which will NOT load the ~/.profile
. 這篇文章有詳細信息。 因此,在調用subprocess.call
之前,您需要確保os.environ
具有可執行文件所在的目錄,或者您可以只提供可執行文件的絕對路徑,或者確保您的 shell 腳本(如果您的可執行文件只是 shell script) 使用絕對路徑或管理自己的 PATH 環境變量。 您還可以將環境變量字典傳遞給subprocess.Popen
以獲得對子進程環境和許多其他方面的詳細控制。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.