如何通过PyCharm将命令行参数传递给tf.app.flags?

Fan*_*nta 3 pycharm tensorflow

当我通过PyCharm将命令行参数传递给我的Python程序时,我会像往常一样发现它们sys.argv,tf.app.flags.FLAGS而是报告空字符串.

如果我在PyCharm外部运行相同的程序(从命令行),则tf.app.flags.FLAGS报告预期的命令行参数值.

请参阅下面的屏幕截图,了解我如何在PyCharm中传递命令行参数.

这是一个重现问题的简短程序:

import tensorflow as tf
from sys import argv

flags = tf.app.flags
FLAGS = flags.FLAGS

# command line flags
flags.DEFINE_string('input', '', "input file (.p)")

def main(_):
    print('Parameters', argv)
    print('input', FLAGS.input or 'is empty')

# parses flags and calls the `main` function above
if __name__ == '__main__':
    tf.app.run()
Run Code Online (Sandbox Code Playgroud)

如果我从命令行运行它,我得到预期的输出:

python3 issue.py --input my_data.p
Parameters ['issue.py', '--input', 'my_data.p']
input my_data.p
Run Code Online (Sandbox Code Playgroud)

但是从PyCharm,input设置为空字符串:

/usr/bin/python3.5 /home/fanta/workspace/CarND-Transfer-Learning-Lab/issue.py "--input my_data.p"
Parameters ['/home/fanta/workspace/CarND-Transfer-Learning-Lab/issue.py', '--input my_data.p']
input is empty
Run Code Online (Sandbox Code Playgroud)

如何input使用Tensorflow tf.app.flags.FLAGS和PyCharm 来包含命令行参数?

在此输入图像描述

kaf*_*man 5

不要将脚本参数放入引号"...".写吧

--input_data my_data.p
Run Code Online (Sandbox Code Playgroud)

Script Parameter屏幕截图中的字段中.