我有一个launchd
条目与OSX 10.6一起工作但是10.7失败了。它使用python,并在尝试导入serial
时产生错误。我不太明白这一点,因为我已经重新下载了pyserial-2.5
并用sudo重新安装了它。 (无奈之下,我为我机器上的各种python重新安装了它。)作为测试,我可以毫无困难地进入python并做import serial
。也许有一个系统路径可以很好地为交互式用户设置,但是没有设置为启动??
有人可以建议我如何诊断问题吗?
答案 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 PATH
(echo $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)改变了很多东西。也许我在某个地方有一些初始化文件,我忘记了。如果我找到了,我会这样试试,并在此发表进一步的评论。