2011-08-17 63 views
0

我有一個launchd條目與OSX 10.6一起使用,但失敗與10.7。它使用python,並在嘗試導入serial時產生錯誤。我不太明白這一點,因爲我重新下載了pyserial-2.5並用sudo重新安裝了它。 (無奈之下,我爲我的機器上的各種python中的每一種重新安裝了它。)作爲測試,我可以毫無困難地輸入python並執行import serial。也許有一個爲交互式用戶設置好的系統路徑,該路徑未設置爲啓動?蟒蛇/串行破壞在OSX獅子/ launchd

任何人都可以建議我如何診斷問題?

+0

你如何安裝pyserial?通過點? – radious

+0

是的,但不使用點子。 (我下載了它並執行''sudo python build'',然後從源文件中執行'sudo python install'')''pip''給出如下,這似乎表明它是可以的。 ''$ pip search pyserial pyserial - Python串行端口擴展 已安裝:2.5(最新)'' – dank

+0

另外,我只是做了''sudo pip install pyserial --upgrade'',它仍然失敗。 – dank

回答

0

一些實驗用python -S向我表明了sys.path設置不正確,所以我通過

import sys 
sys.path.append('/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages') 
import serial 

知道是尷尬的,因爲它是如此的具體解決的問題,但我想我我必須忍受這一點,除非或者直到我能找到一種方法告訴python在哪裏找到東西,因爲它是從launched中調用的。

PS給後來到這裏的任何人:切換到OSX 10.7(Lion)改變了大量的東西。也許我有一些初始化文件,我忘了。如果我發現這種情況,我會嘗試這種方式,並在此發佈進一步的評論。

1

要附加的路徑:

/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages

是一個第三方的site-packages目錄,非系統的Python,可能使用python.org安裝程序進行安裝,而不是使的Apple蘋果提供的系統的Python 2.7,這將是:

/Library/Python/2.7/site-packages

所以很有可能你正在使用的python.org Python來安裝pyserial但推出系統Python根據launchd。檢查你的外殼PATHecho $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