【发布时间】:2017-03-25 12:43:48
【问题描述】:
当我通过 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()
如果我从命令行运行它,我会得到预期的输出:
python3 issue.py --input my_data.p
Parameters ['issue.py', '--input', 'my_data.p']
input my_data.p
但是从 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
如何使用 Tensorflow 的 tf.app.flags.FLAGS 和 PyCharm 让 input 包含命令行参数?
【问题讨论】:
标签: tensorflow pycharm