Python导入钩子和__main__

时间:2013-05-13 05:23:20

标签: python import

PEP 302定义了一种用户代码挂钩到导入过程并拦截导入的方法。

但是,这仅适用于在运行某些代码以注册导入挂钩之后发生的导入。

几乎按定义,没有代码在__main__模块之前运行,该模块是最初运行的脚本。我没有运气试图获取我的导入钩子(它做了一些有用的事情)来拦截为__main__模块加载的代码。

有什么方法可以让我失踪,或者我只是运气不好?我可以接受让我的导入钩子不在__main__模块上执行它们的转换,但如果他们这样做会很好。

1 个答案:

答案 0 :(得分:0)

您是否尝试过像这样导入main?

if __name__ == '__main__':
    import foo
    # Rest of code here