有没有做的事情:
import __main__
可能导致ImportError
?我尝试的所有案例似乎都表明这一切都有效。 __main__
上的文档似乎没有说明任何事情。
给出一些上下文:我试图使用__main__.__dict__
钩子在usersitecustomize
中注入一些名称,以便(主要)在REPL启动时使它们可用。
虽然没有__import__
的重新定义(如评论所述),但这基本上归结为我是否需要将其包裹在try-except
中。
答案 0 :(得分:2)
可能是。 Python在此文件中初始化__main__
:
https://github.com/python/cpython/blob/master/Python/pylifecycle.c#L1327
但请注意,runpy
和IPython
等模块会将__main__
模块替换为自己动态创建的模块,以防止与自己的启动脚本发生冲突,并提供预期的行为。 runpy。
runpy本身是Python标准库的一部分,它提供了-m
标志的实现,允许任意模块作为脚本执行。
另一种选择是IPython,它提供了在启动新REPL时执行代码的功能。
有关详情,请参阅此处:http://ipython.readthedocs.io/en/stable/config/intro.html?highlight=exec_lines