告诉python解释器在其脚本中使用解释器命令行开关

2024-04-20 00:42:48 发布

您现在位置:Python中文网/ 问答频道 /正文

可以告诉python解释器使用特定的命令行开关来运行我的脚本吗。你知道吗

例如

如果我启用了doctests,我想添加

if __name__ == '__main__':
    import doctest
    doctest.testmod()

创建一个独立的测试运行程序。你知道吗

但是,这需要我添加-v开关来运行脚本:

python myscript -v

在Sublime这样的编辑器中,构建系统默认为无开关,这并不总是很方便。我知道我可以创建一个自定义生成器,但与指定用于某些脚本的开关相比,这是次优的。你知道吗

有可能吗?如果有,怎么可能?你知道吗

更新

下面有人指出doctest案例涉及脚本标志而不是解释器开关。但我真的很想知道这两个案子。你知道吗

另外,尽管testmod(verbose=True)可以解决这个特殊情况,但我仍然对最初的问题感兴趣。你知道吗


Tags: 命令行nameimport程序脚本ifmain系统
3条回答

您可以考虑使用环境变量。 e、 g

# from the command line
export VERBOSE_MODE=True

# in the Python code
import os
verbose_mode = os.environ.get('VERBOSE_MODE', False)

如果命令行上没有提供该标志,则可以将其作为回退机制。你知道吗

我得到了我想要的。在使用bashshell的系统上,我可以简单地将以下内容添加到脚本的顶部

#! /usr/local/bin/python3 -m doctest -v

然后呢

chmod +x myscript.py

我不知道如何在Windows上做到这一点(也许等待Win10的Linux子系统),但幸运的是我主要在macOS上工作。你知道吗

这也适用于其他命令行开关。你知道吗

传递^{}doctest.testmod

if __name__ == '__main__':
    import doctest
    doctest.testmod(verbose=True)

弄乱命令行标志是错误的做法。你知道吗

相关问题 更多 >