gpt4 book ai didi

python - __main__ 是否保证始终可导入?

转载 作者:行者123 更新时间:2023-11-28 17:14:54 26 4
gpt4 key购买 nike

有没有这样的情况:

import __main__

可能会导致 ImportError?我尝试过的所有案例似乎都表明这总是有效的。 __main__ 上的文档似乎没有对此事发表任何看法。

为了提供一些上下文:我正在尝试使用 usersitecustomize Hook 在 __main__.__dict__ 中注入(inject)一些名称,以便(主要)在 REPL 触发时让它们可用向上。

假设没有发生 __import__ 的重新定义(如评论所述),这基本上归结为我是否需要将其包装在 try-except 中。

最佳答案

应该是吧。 Python 在此文件中初始化 __main__: https://github.com/python/cpython/blob/master/Python/pylifecycle.c#L1327

但是请注意,runpyIPython 等模块将 __main__ 模块替换为它们自己动态创建的模块,以防止与它们自己的启动发生冲突脚本并在 runpy 的情况下提供预期的行为。

runpy 本身是 Python 标准库的一部分,并提供 -m 标志的实现,该标志允许任意模块作为脚本执行。

另一种选择是 IPython,它提供了在启动新 REPL 时执行代码的功能。

有关更多详细信息,请参见此处:http://ipython.readthedocs.io/en/stable/config/intro.html?highlight=exec_lines

关于python - __main__ 是否保证始终可导入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44875918/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com