2017-03-25 2 views
1

Wenn ich Befehlszeilenparameter an mein Python-Programm über PyCharm übergeben, finde ich sie wie üblich in sys.argv, aber tf.app.flags.FLAGS meldet stattdessen leere Zeichenfolgen.Wie kann ich Kommandozeilenparameter über PyCharm an tf.app.flags übergeben?

Wenn ich das gleiche Programm außerhalb von PyCharm (über die Befehlszeile) ausführe, meldet tf.app.flags.FLAGS die erwarteten Werte der Befehlszeilenparameter.

Siehe Screenshot unten, um zu sehen, wie ich Kommandozeilenparameter in PyCharm übergeben.

Hier ist ein kurzes Programm, das das Problem reproduziert:

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() 

Wenn ich es von der Kommandozeile ausführen, bekomme ich die erwartete Ausgabe:

python3 issue.py --input my_data.p 
Parameters ['issue.py', '--input', 'my_data.p'] 
input my_data.p 

Aber von PyCharm wird input auf ein Set leere Zeichenkette:

/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 

Wie kann ich input die Co enthalten mmand line Parameter, mit Tensorflow tf.app.flags.FLAGS und PyCharm?

enter image description here

Antwort

3

Sie es nicht die Skriptparameter in "..." Anführungszeichen gesetzt. Schreiben Sie einfach

--input_data my_data.p 

in den Script Parameter Felder in Ihrem Screenshot.

Verwandte Themen