如何在spyder中传递布尔参数?

时间:2018-04-09 15:50:33

标签: python anaconda spyder

我正在尝试运行(来自Spyder)一个包含以下代码的python脚本:

if __name__ == "__main__":
    parser = argparse.ArgumentParser(description='Project description')
    parser.add_argument(
        'nbr_workers', type=int, help='Number of workers e.g. 1, 2, 4, 8')
    parser.add_argument(
        '--nbr_samples_in_total',
        type=int,
        default=1e4,
        help='Number of samples in total e.g. 100000000')
    parser.add_argument(
        '--processes',
        action="store_true",
        default=True,
        help='True if using Processes, absent (False) for Threads')

我知道我可以在Spyder中使用control + F6来提交命令行选项。但是,我无法使其发挥作用。

输入

enter image description here

生成错误

runfile('C:/Users/john/.spyder/temp.py', args='3 1000 1', wdir='C:/Users/john/.spyder')
usage: temp.py [-h] [--nbr_samples_in_total NBR_SAMPLES_IN_TOTAL]
               [--processes]
               nbr_workers
temp.py: error: unrecognized arguments: 1000 1
An exception has occurred, use %tb to see the full traceback.

SystemExit: 2

我在这里做错了什么? 谢谢!

1 个答案:

答案 0 :(得分:2)

好的,我想我找到了解决方案。

runfile('//***/.spyder/temp.py', args='3 --nbr_samples_in_total 100 --processes', wdir='//***/.spyder')
  

OUT:命名空间(nbr_samples_in_total = 100,nbr_workers = 3,processes = True)

runfile('//***/.spyder/temp.py', args='3 --nbr_samples_in_total 100', wdir='//***/.spyder')
  

OUT:命名空间(nbr_samples_in_total = 100,nbr_workers = 3,processes = False)

你必须将你在评论中提到的default=False的过程标志修改为缺席(false),这样如果你添加了标记,它将被设置为True