2015-01-25 2 views
4

Я начал работать над Leap контроллером движения и при попытке выполнить свой код, я получаю эту ошибку:ImportError: Нет модуль с именем Leap

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

http://stackoverflow.com/questions/3992952/importerror-no-module-named-in-python Проверьте этот вопрос/ответ. Также https://github.com/openleap/PyLeapMouse/issues/16 – GLHF

ответ

3

Вы не можете добавить двоеточие списка разделенного пути, а 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 не является строкой, это список строк. Так добавить отдельные строки пути к нему, ни один 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)