在OSX lion / launchd中打破了python / serial

时间:2011-08-17 13:30:26

标签: python macos osx-lion launchd pyserial

我有一个launchd条目与OSX 10.6一起工作但是10.7失败了。它使用python,并在尝试导入serial时产生错误。我不太明白这一点,因为我已经重新下载了pyserial-2.5并用sudo重新安装了它。 (无奈之下,我为我机器上的各种python重新安装了它。)作为测试,我可以毫无困难地进入python并做import serial。也许有一个系统路径可以很好地为交互式用户设置,但是没有设置为启动??

有人可以建议我如何诊断问题吗?

2 个答案:

答案 0 :(得分:1)

您要追加的路径:

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

是第三方非系统Python的site-packages目录,可能是使用python.org安装程序安装的,而不是Apple提供的系统Python 2.7,它将是:

/Library/Python/2.7/site-packages

所以很有可能你使用python.org Python安装pyserial但是在launchd下启动了系统Python。检查你的shell PATHecho $PATH),它可能有:

/Library/Frameworks/Python.framework/Versions/2.7/bin

在里面。并尝试which python。如果你想在你的launchd plist中使用python.org Python,修改它以使用正确Python的绝对路径,例如:

/Library/Frameworks/Python.framework/Versions/2.7/bin/python

如果你想用系统提供的Python安装pyserial,你可以在安装时使用它的绝对路径:

/usr/bin/python2.7

答案 1 :(得分: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)改变了很多东西。也许我在某个地方有一些初始化文件,我忘记了。如果我找到了,我会这样试试,并在此发表进一步的评论。