【问题标题】:How do you use importlib to load <directory path>/__init__.py如何使用 importlib 加载 <目录路径>/__init__.py
【发布时间】:2021-11-25 22:35:57
【问题描述】:

我有以下目录结构

Sub
   trackers
       __init__.py

给定

bundle_path = "<path>/Sub"

我想使用导入库从trackers 加载__init_.py 文件。我知道我可以移动文件,所以我有另一个文件结构来“修复”我的问题,但我的目标是动态导入,而不是明确的。

我尝试了 spec_from_file_location 的变体,但似乎没有分配加载程序。

有推荐的方法吗?

以下不起作用:

        spec = util.spec_from_file_location('__init__', self.bundle_path.joinpath('trackers'))
        module = util.module_from_spec(spec)
        spec.loader.exec_module(module)

【问题讨论】:

    标签: python python-importlib


    【解决方案1】:

    事实证明,修复很简单。过去未能达到这一点可能是由于加载的代码中的其他导入机制出现问题。

    spec = util.spec_from_file_location('trackers', self.bundle_path.joinpath('trackers', '__init__.py'))
            module = util.module_from_spec(spec)
            spec.loader.exec_module(module)
    

    成功了。

    【讨论】:

      猜你喜欢
      • 2011-08-07
      • 1970-01-01
      • 2012-03-14
      • 2019-03-02
      • 1970-01-01
      • 2021-03-20
      • 2011-01-22
      • 2021-09-13
      • 2011-11-11
      相关资源
      最近更新 更多