2024-03-29 07:43:00 发布
网友
是否存在以下情况:
import __main__
可能导致ImportError?我试过的所有案例似乎都表明这是有效的。^{}上的文档似乎没有说明这件事。在
ImportError
提供一些上下文:我尝试使用usersitecustomize钩子在__main__.__dict__中注入一些名称,以便(主要)在REPL启动时使它们可用。在
usersitecustomize
__main__.__dict__
假设没有发生__import__的重新定义(如注释所述),这本质上归结为是否需要将其包装在try-except中。在
__import__
try-except
可能是的。Python初始化此文件中的__main__: https://github.com/python/cpython/blob/master/Python/pylifecycle.c#L1327
__main__
但是请注意,像runpy和IPython这样的模块用它们自己动态创建的模块替换{}模块,以防止与它们自己的启动脚本发生冲突,并在运行时提供预期的行为。在
runpy
IPython
runpy本身是Python标准库的一部分,它提供了-m标志的实现,该标志允许将任意模块作为脚本执行。在
-m
另一种选择是IPython,它提供在启动新REPL时执行代码的功能。在
有关详细信息,请参阅此处:http://ipython.readthedocs.io/en/stable/config/intro.html?highlight=exec_lines
可能是的。Python初始化此文件中的
__main__
: https://github.com/python/cpython/blob/master/Python/pylifecycle.c#L1327但是请注意,像}模块,以防止与它们自己的启动脚本发生冲突,并在运行时提供预期的行为。在
runpy
和IPython
这样的模块用它们自己动态创建的模块替换{runpy本身是Python标准库的一部分,它提供了
-m
标志的实现,该标志允许将任意模块作为脚本执行。在另一种选择是IPython,它提供在启动新REPL时执行代码的功能。在
有关详细信息,请参阅此处:http://ipython.readthedocs.io/en/stable/config/intro.html?highlight=exec_lines
相关问题 更多 >
编程相关推荐