ImportError:没有名为Leap的模块

时间:2015-01-25 05:36:22

标签: python leap-motion

我已经开始研究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位

2 个答案:

答案 0 :(得分:3)

您不能像这样追加冒号分隔的路径列表,因为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"]

答案 1 :(得分:0)

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 )