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