簡體   English   中英

在 OSX lion/launchd 中,python/serial 壞了

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

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