[英]python/serial broken in OSX lion / launchd
我有一個與 OSX 10.6 一起使用但在 10.7 中失敗的launchd
條目。 它使用 python,並在嘗試導入serial
時產生錯誤。 我不太明白這一點,因為我已經重新下載了pyserial-2.5
並使用 sudo 重新安裝了它。 (無奈之下,我在我的機器上為 python 的多種口味中的每一種重新安裝了它。)作為測試,我可以輸入 python 並毫無困難地import serial
。 也許有一個為交互式用戶設置好的系統路徑,但沒有設置為啟動?
誰能建議我如何診斷問題?
您要附加的路徑:
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
是第三方非系統 Python 的site-packages
目錄,可能是使用 python.org 安裝程序安裝的,而不是 Apple 提供的系統 ZA7F5F35426B9274173Z 的安裝程序,它是:
/Library/Python/2.7/site-packages
因此,您很可能正在使用 python.org Python 來安裝pyserial
,但正在啟動系統 Python 下launchd
。 檢查您的 shell PATH
( echo $PATH
),它可能有:
/Library/Frameworks/Python.framework/Versions/2.7/bin
在里面。 並嘗試which python
。 如果您想將 python.org Python 與您的已launchd
plist 一起使用,請將其修改為使用右側 Python 的絕對路徑,例如:
/Library/Frameworks/Python.framework/Versions/2.7/bin/python
如果你想用系統提供的 Python 安裝pyserial
,你可以在安裝時使用它的絕對路徑:
/usr/bin/python2.7
python -S
的一些實驗表明sys.path
沒有正確設置,所以我解決了這個問題
import sys
sys.path.append('/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages')
import serial
我知道這很尷尬,因為它是如此具體,但我想我將不得不忍受它,除非或直到我能找到一種方法告訴launched
在哪里可以找到東西,因為它是從 launch 調用的。
PS 給以后來這里的任何人:切換到 OSX 10.7 (Lion) 改變了很多事情。 也許我在某處有一些初始化文件,但我忘記了。 如果我發現了,我會嘗試這樣,並在這里發表進一步的評論。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.