如何从sublime插件中的另一个目录导入类

时间:2016-10-22 23:36:11

标签: python sublimetext2 sublimetext3 sublimetext sublime-text-plugin

我希望有一个目录结构,如:

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

如果我的插件位于子目录中,我无法识别我的插件。没关系,我可以保留根目录中的入口点并导入我的其他类;但是,我也无法做到这一点。我已编写代码并运行我的测试,如nosetest tests/并且一切都过去了 - 当sublime尝试加载我得到的包时:ImportError: No module named 'lib'。我对sublime插件开发和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):

1 个答案:

答案 0 :(得分:5)

你走在正确的轨道上; Sublime只会扫描并自动将文件加载到Packages文件夹深处的一个目录中。正如您所注意到的那样。

您的问题是您要导入的模块名称需要使用其存储的包的名称进行限定。就您上面给出的代码而言,以下代码可以正常工作,假设该插件是checkBoxFaster.isChecked()目录存储在名为lib

的目录中
myplugin