是否可以告诉python解释器使用特定的命令行开关来运行我的脚本。
例如,
如果我启用了doctests,我想添加
if __name__ == '__main__':
import doctest
doctest.testmod()
创建一个独立的测试运行器。
但是,这需要我添加-v
开关来运行脚本:
python myscript -v
在像Sublime这样的编辑器中,构建系统默认没有开关,这并不总是很方便。我知道我可以创建一个自定义构建器,但与指定用于某些脚本的开关相比,这是次优的。
是否可能,如果可以,怎么样?
更新
有人指出doctest案例涉及脚本标志而不是解释器开关。但我真的想知道这两种情况。
虽然testmod(verbose=True)
可以解决这个特殊情况,但我仍然对最初的问题感兴趣。
答案 0 :(得分:1)
将verbose=True
传递给doctest.testmod
:
if __name__ == '__main__':
import doctest
doctest.testmod(verbose=True)
使用命令行标志混乱是错误的方法。
答案 1 :(得分:0)
您可以考虑使用环境变量。 如,
# from the command line
export VERBOSE_MODE=True
# in the Python code
import os
verbose_mode = os.environ.get('VERBOSE_MODE', False)
如果在命令行上没有提供标记,你可以将它作为一种回退机制。
答案 2 :(得分:0)
我得到了我想要的东西。在具有bash shell的系统上,我可以简单地将以下内容添加到我的脚本
的顶部#! /usr/local/bin/python3 -m doctest -v
然后
chmod +x myscript.py
不知道如何使用Windows(也许等待Win10的Linux子系统),但幸运的是我主要使用macOS。
这也适用于其他命令行开关。