簡體   English   中英

使用 subprocess.call 時 Python 和 Mac OS X 中的路徑環境變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM