1

sublime text 3我为(使用另一个我的简单模块)创建了简单的插件module1

import sublime, sublime_plugin

import sys
sys.path.insert(0, '/Users/maks/Library/Application Support/Sublime Text 3/Packages/forStack')
import module1

class simple_pluginCommand(sublime_plugin.TextCommand):
    def run(self, edit):      
        print("Hello World")
        module1.method1()

我在sublime command line(ctrl+`)中运行它

view.run_command('simple_plugin') 

它输出:

Hello World
Hello module1.method1()

在哪里module1...

def method1():
    print("Hello module1.method1()")

然后我重构 module1(更改方法名称及其内容):

def method2():
    print("Hello module1.method2()")

...用输出保存module1:

Writing file /Users/maks/Library/Application Support/Sublime Text 3/Packages/forStack/module1.py with encoding UTF-8 (atomic)
reloading plugin forStack.module1

然后我相应地更改插件文本以调用 module1.method2():

import sublime, sublime_plugin

import sys
sys.path.insert(0, '/Users/maks/Library/Application Support/Sublime Text 3/Packages/forStack')
import module1

class simple_pluginCommand(sublime_plugin.TextCommand):
    def run(self, edit):      
        print("Hello World2")
        module1.method2() #------------------------- change only here

用输出保存它:

Writing file /Users/maks/Library/Application Support/Sublime Text 3/Packages/forStack/simple_plugin.py with encoding UTF-8 (atomic)
reloading plugin forStack.simple_plugin

然后尝试simple_plugin再次调用我并得到错误输出:

Hello World2
Traceback (most recent call last):
  File "/Applications/Sublime Text.app/Contents/MacOS/sublime_plugin.py", line 549, in run_
    return self.run(edit)
  File "/Users/maks/Library/Application Support/Sublime Text 3/Packages/forStack/simple_plugin.py", line 10, in run
    module1.method2()
AttributeError: 'module' object has no attribute 'method2'

它似乎在某处“缓存”module1并且不进行更改。那么如何禁用或刷新那个“缓存”呢?

更新:

现在我可以通过两种方式刷新“缓存”:

  1. 关闭 sublime 并重新打开它。
  2. 例如重命名module1module2

这两种方法都太浪费时间了。

4

0 回答 0