我已经升级到Python 3.4.2和argparse(从optparse),但它们似乎也没有认识到命令行选项。 作为一个简单的测试,我跑这一点;
#test_argparse.py
def main():
import argparse
parser = argparse.ArgumentParser(description='Execute database query.')
parser.add_argument("-q", "--query", dest="query",
help="Name of the query file to be run")
args = parser.parse_args()
print(args)
if __name__ == '__main__':
main()
在命令行中,当我运行
test_argparse.py -q get_msre_for_book
我得到:
Namespace(query=None)
但是,当我在IDE中运行:
*** Python 3.4.2rc1 (v3.4.2rc1:8711a0951384, Sep 21 2014, 21:16:45) [MSC v.1600 32 bit (Intel)] on win32. ***
Command Line : -q get_msre_for_book
Namespace(query='get_msre_for_book')
我试图通过启动脚本
os.system('python.exe', '<path to script>test_argparse.py -q get_msre_for_book')
但是还是失败,是没有提出任何查询,如上图所示。 我已经通过发动工作了一本
subprocess.call
但我宁愿不用。 再次,任何建议或想法感激地接受。