导入错误:未找到名为Leap的模块。

5

我开始使用Leap Motion控制器,但在尝试执行代码时出现以下错误:

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位。


请查看这个问题/答案:https://dev59.com/m2865IYBdhLWcg3wFqjY。另外,还有https://github.com/openleap/PyLeapMouse/issues/16。 - GLHF
2个回答

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

0

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

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

或者你可以通过添加另一个字符串列表来 扩展 列表—例如,通过调用 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 )

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接