gpt4 book ai didi

python - 如何知道 python 脚本是否使用解释器的 -m 选项运行?

转载 作者:太空狗 更新时间:2023-10-29 21:06:09 25 4
gpt4 key购买 nike

阅读以下所有内容后我找不到答案:

理由:
当使用相对导入的测试脚本在没有 -m 选项的情况下运行时,我可以打印一条警告消息,而不是让用户留下导致 ValueError: Attempted relative import in non-package异常。在不知道这一点的情况下,我可以捕获此异常,并且只有 suggest 缺少 -m 选项可能是错误的原因。

最佳答案

免责声明:这只是一个观察,我没有在文档中看到它,所以它可能依赖于实现,并且在不同的 Python 版本之间可能不一致。

我注意到当使用 -m 选项调用脚本时,一个名为 __loader__ 的变量被添加到命名空间中,因此您可以在脚本的顶部检查对于该变量的存在:

if '__loader__' in globals():
# called with -m

为了更加安全,您可以检查 __loader__ 是否是 pkgutil.ImpLoader 的实例:

if '__loader__' in globals() and __loader__.__class__.__name__ == 'ImpLoader':

关于python - 如何知道 python 脚本是否使用解释器的 -m 选项运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8348726/

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