如何重新加载所有导入的模块?

用户

我有几个模块,在开发Sublime Text软件包时,我想重新加载而不必重新启动Sublime Text。

我正在运行Sublime Text内部版本3142,该版本python3.3连续运行其软件包/插件。但是,在开发插件时,我将添加到path中的第三方模块导入为:

import os
import sys

def assert_path(module):
    """
        Import a module from a relative path
        https://stackoverflow.com/questions/279237/import-a-module-from-a-relative-path
    """
    if module not in sys.path:
        sys.path.insert( 0, module )

current_directory = os.path.dirname( os.path.realpath( __file__ ) )
assert_path( os.path.join( current_directory, 'six' ) ) # https://github.com/benjaminp/six

import six

但是,当我编辑模块的源代码时,six我需要再次关闭并打开Sublime Text,否则Sublime Text无法获取对sixpython模块的更改


到目前为止我尝试过的一些代码:

print( sys.modules )
import git_wrapper
imp.reload( find_forks )
imp.reload( git_wrapper )
imp.reload( sys )
  1. 从控制台重新加载python模块的正确方法
  2. 正在重载模块,显示NameError:名称“ reload”未定义
cs95

要列出所有导入的模块,可以使用sys.modules.values()

import sys
sys.modules.values()

sys.modules 是将模块的字符串名称映射到其引用的字典。

要重新加载模块,您可以从上方遍历返回的列表,然后分别调用imp.reload

import imp
for module in sys.modules.values():
    imp.reload(module)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何获得模块中定义但未导入的所有类?

如何重新加载使用`from module import *`导入的python模块

如何卸载(重新加载)Python模块?

如何导入所有子模块?

如何从TypeScript目录中导入所有模块?

IntelliJ的“重新导入所有Maven项目”按钮如何工作?

更改模块后如何重新加载模块?

IPython Notebook:如何在特定的Python文件中重新加载所有模块?

删除了交互式模块的功能。如何重新导入?importlib.reload没有帮助

在完成所有操作的OperationsQueue时如何重新加载UITableView

如何从打字稿中的模块中重新导出所有导入?

如何从加载了imp的模块中“导入*”?

从灵活定义的模块导入所有变量

如何热重新加载包装在本机导入上下文中的模块?

如何使用ES6导入重新导入模块

如何列出Python模块的所有函数而忽略模块导入的函数?

如何使摘要模块重新导出ESM模块的所有子模块输出?

如何列出所有可加载的内核模块?

如何使链接而不用jQuery重新加载所有页面

重新加载导入的模块

从“ <模块>导入*”后如何重新加载?

从包中导入所有模块

如何重新加载Java模块

删除所有项目后如何重新加载列表视图?

Oracle impdp 可以导入更新的行和新的行,而无需重新加载所有行吗?

在控制台中工作时如何轻松重新加载/重新导入模块

导入数据后如何重新加载UITableView?

如何将所有属性导入 numpy 模块?

如何递归导入模块中的所有类?