我们有一个应用程序,它允许用户使用插件来扩展它。我们提供了一些帮助器模块,用户可以使用它们的插件访问它们
import helpermodule
现在,我们决定最好更改helper模块的打包,以便所有模块都从主包加载,如下所示:
from ourpackage import helpermodule
因为我们不想破坏用户插件中现有的代码,所以我们仍然提供旧的方法。(事实上,我们刚刚在源代码的ourpackage
目录中的__init__.py
文件中导入了助手模块。)当用户脚本以旧方式导入助手模块时,我们非常希望发出警告(使用warnings
标准库)。你知道吗
所以我的问题是:有没有办法判断用户是否以“错误”的方式导入了helper模块?理想情况下,我们希望在不检查用户代码的情况下实现这一点。你知道吗
这取决于你是如何实现“仍然提供旧的方式”。听起来像是将旧模块直接放在搜索路径上,而只是在我们的包中执行
import helpermodule
。(也就是说,您自己仍然以“错误”的方式导入模块)。你知道吗但是,请注意,这样做会留下一些棘手的问题。您将无法执行
import testpack.teststuff
。此外,仍然存在这样一种可能性,即该人员可以以好的和坏的方式导入teststuff,并在中创建两个单独的副本系统模块. 你知道吗如果这不是你如何“仍然提供旧的方式”,请编辑澄清。你知道吗
相关问题 更多 >
编程相关推荐