ImportError: No module named Leap

ImportError: No module named Leap

我已经开始使用 Leap Motion Controller,但在尝试执行我的代码时出现此错误:

ImportError: No module named Leap

我已经添加了所需库的路径

import sys 
sys.path.append("usr/lib/Leap:/path/to/lib/x86:/path/to/lib")
import thread, time
from Leap import CircleGesture, KeyTapGesture, ScreenTapGesture, SwipeGesture

我做错了什么?

我正在 Linux 平台上工作:Ubuntu 13.10,32 位

您不能像这样附加冒号分隔的路径列表,因为 Python 的 sys.path 将路径条目存储在列表中,而不是冒号分隔的列表。每个文件夹都需要单独附加。此外,usr/lib/Leap 似乎缺少前导斜杠。

像这样的东西应该可以工作:

sys.path.append("/usr/lib/Leap")
sys.path.append("/path/to/lib/x86")
sys.path.append("/path/to/lib")

或者这样:

sys.path += ["/usr/lib/Leap", "/path/to/lib/x86", "/path/to/lib"]

sys.path 不是一个字符串,它是一个字符串列表。因此,向其附加单独的路径字符串,而不是一个单独的 pathsep 分隔字符串:

sys.path.append("/usr/lib/Leap")
sys.path.append("/path/to/lib/x86")
sys.path.append("/path/to/lib")

或者,您可以通过添加另一个字符串列表来 extend 列表——例如,通过对字符串调用 split 获得的列表:

sys.path += "/usr/lib/Leap:/path/to/lib/x86:/path/to/lib".split( ":" )

但理想情况下,你应该在添加之前检查每个字符串是否已经在路径上,否则路径将无限长且重复调用。例如:

for p in "/usr/lib/Leap:/path/to/lib/x86:/path/to/lib".split( ":" ):
     if p not in sys.path: sys.path.append( p )