Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
PEP 302定义了一种用户代码挂钩到导入过程并拦截导入的方法。
但是,这仅适用于在运行某些代码以注册导入挂钩之后发生的导入。
几乎按照定义,在模块之前没有代码运行,__main__模块是最初运行的脚本。我没有任何运气试图让我的导入钩子(它做一些有用的事情)来拦截为__main__模块加载的代码。
__main__
有没有我想念的前进方向,或者我只是运气不好?我可以接受让我的导入钩子不在__main__模块上执行它们的转换,但如果他们这样做会很好。
您是否尝试过像这样在 main 中导入?
if __name__ == '__main__': import foo # Rest of code here