1

Я хочу, чтобы иметь структуру каталогов, как:Как импортировать классы из другого каталога, в возвышенной плагин

myplugin 
    -lib 
    -myplugin.py 
    -file.py 
    -another.py 
    -tests 
    -file_tests.py 
    -another_tests.py 

Я не могу сделать возвышенного признать мой плагин, если он находится в директории ребенка. Это нормально, я могу сохранить точку входа в корневой каталог и импортировать другие классы; однако я тоже не могу сделать эту работу. Я написал код и хорошо проверил свои тесты, например nosetest tests/, и все проходит - когда возвышенное пытается загрузить пакет, который я получаю: ImportError: No module named 'lib'. Я новичок как возвышенного разработки плагинов и Python, но в основном, мой плагин как:

import sublime 
import sublime_plugin 
from lib.something import Something 
from lib.something_else import SomethingElse 
from lib.something_else_else import SomethingElseElse 

class MyPluginCommand(sublime_plugin.TextCommand): 

ответ

4

Вы находитесь на правильном пути; Sublime только сканирует и автоматически загружает файлы в одну директорию глубоко внутри папки Packages, как вы заметили.

Проблема заключается в том, что имя модуля, которое вы хотите импортировать, должно быть квалифицировано с именем пакета, в котором он хранится. В терминах кода, который вы указали выше, следующее будет работать, если предположить, что плагин, который каталог lib хранится в названии myplugin:

import sublime 
import sublime_plugin 
from myplugin.lib.something import Something 
from myplugin.lib.something_else import SomethingElse 
from myplugin.lib.something_else_else import SomethingElseElse 

class MyPluginCommand(sublime_plugin.TextCommand): 

 Смежные вопросы

  • Нет связанных вопросов^_^