如何从 sublime 插件的另一个目录导入 类
How to import classes from another directory in sublime plugin
我想要一个像这样的目录结构:
myplugin
-lib
-myplugin.py
-file.py
-another.py
-tests
-file_tests.py
-another_tests.py
如果我的插件在子目录下,我无法让 sublime 识别我的插件。没关系,我可以将入口点保留在根目录中并导入我的另一个 类;但是,我也无法做到这一点。我已经编写了代码并且 运行 我的测试很好,比如 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):
你走在正确的轨道上;正如您所注意到的,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):
我想要一个像这样的目录结构:
myplugin
-lib
-myplugin.py
-file.py
-another.py
-tests
-file_tests.py
-another_tests.py
如果我的插件在子目录下,我无法让 sublime 识别我的插件。没关系,我可以将入口点保留在根目录中并导入我的另一个 类;但是,我也无法做到这一点。我已经编写了代码并且 运行 我的测试很好,比如 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):
你走在正确的轨道上;正如您所注意到的,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):