2015-02-07 5 views
-1

Я пытаюсь использовать аргументы из консоли использовать --auth_local_webserver, --auth_host_port, это те, которые необходимы, чтобы получить верительные oauth2, но я не могу заставить его работатьGFLAGS и локальный в GAE

Я использую консоль таким образом питон Google \ dev_appserver.py --auth_local_webserver = локальный --auth_host_port проект/

Мой каталог это Project/app.main Project/Манипуляторы/VideoTesting

И VideoTesting это один я использую для обработки GFLAGS, я действительно не понимаю, многое из этого, и я много читал,

if FLAGS.auth_local_webserver:  

    success = False 
    port_number = 0 
    for port in FLAGS.auth_host_port: 
     port_number = port 
     debug.response.write(str(port_number)) 

     try: 
     httpd = ClientRedirectServer((FLAGS.auth_host_name, port), 
           ClientRedirectHandler) 
     debug.response.write('what') 
     except socket.error, e: 

     pass 
     else: 
     success = True 
     break 
    FLAGS.auth_local_webserver = success 
    if FLAGS.auth_local_webserver: 
    oauth_callback = 'http://%s:%s/' % (FLAGS.auth_host_name, port_number) 
    else: 
    oauth_callback = 'oob' 
    authorize_url = flow.step1_get_authorize_url(oauth_callback) 

FLAGS = gflags.FLAGS 

gflags.DEFINE_boolean('auth_local_webserver', True, 
        ('Run a local web server to handle redirects during ' 
        'OAuth authorization.')) 

gflags.DEFINE_string('auth_host_name', 'localhost', 
       ('Host name to use when running a local web server to ' 
        'handle redirects during OAuth authorization.')) 

gflags.DEFINE_multi_int('auth_host_port', [8080, 8090], 
        ('Port to use when running a local web server to ' 
        'handle redirects during OAuth authorization.')) 

ответ

0

The gflags.DEFINE... звонки вы показать что вы указать три флага:

  1. auth_local_webserver - булево недобросовестный к истинному
  2. auth_host_name - строку по умолчанию это "локальный"
  3. auth_host_port - список целых чисел недобросовестный [8080, 8090]

Но вы говорите, что вы используете ... (?!) (?!)

--auth_local_webserver=localhost --auth_host_port 

т.е., устанавливая логическое значение в строку и список целых чисел ни к чему. Я нахожу это глубоко запутанным! Что это именно такое, что вам нужно изменить от трех значений по умолчанию выше и почему? Если значения по умолчанию являются точными, просто не указывайте флаги и пусть они по умолчанию, нет?

Далее, я не уверен, что значения аргументов должны обрабатываться в указанных флагах - в этом таинственно анонимном фрагменте кода Python нет такой инициализации (какой файл является частью этого, точно? и какие другие части этого файла вы скрываете от нас, кроме его имени?) Вы должны скрывать другие части, потому что тот, который вы показываете, использует байковое имя debug, которое он нигде не определяет, оно просто появляется из-за синего. И тогда, когда он, наконец, вычисленный authorize_url это просто обрывается, никогда не используя этот адрес ...

Далее, отступы сломаны - в частности, port_number = 0 сопровождается for port, который отступ 2 места больше; если вы передадите этот код интерпретатору, вы получите SyntaxError.

Это напоминает мне, что вы никогда не говорите нам, что вы ожидали, и что вы наблюдаете вместо этого - «не может заставить его работать» сообщает ничего о том, как он не работает, поэтому вы делаете это по существу невозможно для нас помочь вам, помимо перечисления ясных ошибок и пропусков в анонимном фрагменте кода, который вы сообщаете. (И я прошел через свою квоту в таком перечислении по одному вопросу, поэтому я остановлюсь здесь на данный момент!)

Так что вы можете отредактировать свой Q, чтобы прояснить каждый из этих пунктов ... ?!

+0

Извините, что не будьте так осторожны с тем, что я публикую, я рисую другой способ достижения своей цели, и в следующий раз я буду более ясно, чего я хочу. Спасибо за комментарий – adriel1019