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

告诉python解释器在脚本本身中使用解释器命令行开关,python,command-line,doctest,Python,Command Line,Doctest,可以告诉python解释器使用特定的命令行开关运行我的脚本吗 比如说, 如果我启用了doctests,我想添加 if __name__ == '__main__': import doctest doctest.testmod() 创建自包含的测试运行程序 但是,这需要我添加-v开关来运行脚本: python myscript -v 在像Sublime这样的编辑器中,构建系统默认为无开关,这并不总是方便的。我知道我可以创建一个自定义生成器,但与指定用于某些脚本的开关相比,这是

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

比如说,

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

if __name__ == '__main__':
    import doctest
    doctest.testmod()
创建自包含的测试运行程序

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

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

是否可能?如果可能,如何实现

更新

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

另外,虽然
testmod(verbose=True)
可以解决这个特殊情况,但我仍然对原始问题感兴趣。

传递到
doctest.testmod

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

<>使用命令行标志是错误的方式。

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


如果命令行上没有提供该标志,那么这可能是一种回退机制。

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

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

chmod +x myscript.py
我不知道如何在Windows上实现这一点(可能需要等待Win10的Linux子系统),但幸运的是我主要在macOS上工作


这也适用于其他命令行开关。

您使用的是Windows还是WindowsLinux@chbchb55macOSNote:解释器本身的标志与脚本的标志不同。运行
python-myscript-v
-v
标志传递给脚本,而
python-v myscript
将导致python将
-v
解释为解释器本身的标志。@user2357112谢谢提醒!我想知道这两种情况。所以我将修改我的问题。您是否尝试导入sys,然后sys.argv将在arrayThanks中包含您输入的-v。如果我对头衔的担忧无法实现,那么我会将你的标记为正确。
chmod +x myscript.py