路径钩子的受欢迎程度(PEP 302自定义导入)

1 投票
1 回答
626 浏览
提问于 2025-04-15 16:40

我的项目可以远程运行Python函数。为了做到这一点,需要传输函数所用到的模块。决定要发送哪些模块是通过一个修改过的模块查找器来完成的。

在我修改这个模块查找器以支持任意的路径钩子(path_hooks)时,我开始觉得路径钩子似乎并不是很受欢迎。快速在谷歌上搜索代码,似乎只看到ZipImporter在使用它们。我还注意到一个小项目在使用路径钩子(而且即便如此,它的加载器也不支持PEP 302扩展的get_code,这个功能是修改过的模块查找器所需要的)。

有没有人遇到过或者创建过使用自定义路径钩子来访问源代码的项目呢?

1 个回答

2

是的,我写过一些路径钩子(主要是为了让程序能访问存储在其他地方的模块,比如不是在文件系统或压缩文件里的模块),但从来没有在开源项目中使用过(其实也从来没需要在这些项目中支持模块查找)。你遇到了什么困难呢?虽然我不能分享我的原始代码,但我可以分享一些我在这个过程中积累的经验(不过我现在想不起来有什么特别的困难——已经有一段时间了)。至于“受欢迎程度”,我想这和需要把模块放在“其他地方”的需求是成正比的(比如放在某种数据库里),当然,像使用 fusemacfusedokan 这样的通用“用户模式文件系统”也可能实现这个功能(并且在通用性方面提供其他优势——我不太确定性能如何比较)。

撰写回答