0

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

谁能建议我如何诊断问题?

4

2 回答 2

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,但在launchd. 检查你的 shell PATH( echo $PATH),它可能有:

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

在里面。并尝试which python。如果您想将 python.org Python 与您的launchdplist 一起使用,请将其修改为使用正确 Python 的绝对路径,例如:

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

如果要pyserial使用系统提供的 Python 进行安装,可以在安装时使用绝对路径:

/usr/bin/python2.7

于 2011-08-17T17:27:16.030 回答
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) 改变了很多事情。也许我在某处有一些初始化文件,但我忘记了。如果我发现了,我会尝试这样,并在这里发表进一步的评论。

于 2011-08-17T16:18:55.273 回答