-1

--auth_local_webserver、--auth_host_port を使用するためにコンソールから引数を使用しようとしています。これは OAUTH2 から資格情報を取得するために必要ですが、機能させることができません。

この方法でコンソールを使用しています python google\dev_appserver.py --auth_local_webserver=localhost --auth_host_port project/

私のディレクトリはこれです Project/app.main Project/Handlers/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.'))
4

1 に答える 1

0

あなたgflags.DEFINE...が示す呼び出しは、3 つのフラグを指定していると言っています。

  1. auth_local_webserver -- ブール値のデフォルト値は true
  2. auth_host_name -- 文字列でデフォルトは「localhost」
  3. auth_host_port -- デフォルトが [8080, 8090] の整数のリスト

しかし、あなたはあなたが使っていると言います...:

--auth_local_webserver=localhost --auth_host_port

つまり、ブール値を文字列 (?!) に設定し、整数のリストを何も設定しない (?!)。これは非常に紛らわしいと思います!上記の 3 つのデフォルトから変更する必要があるのは、正確には何ですか? また、その理由は何ですか? デフォルト値で問題ない場合は、フラグを指定せずにデフォルトのままにしますか?

次に、引数の値が指定されたフラグに解析されるはずの場所がわかりません.Pythonコードの不思議な匿名スニペットには、そのような初期化はありません(.py正確にはどのファイルの一部ですか?そのファイルはその名前以外に私たちから隠していますか?) あなたが示しているdebugものはどこにも定義されていない裸の名前を使用しているため、他の部分を隠しているに違いありません。そして、最終的に計算されるauthorize_urlと、そのURLを使用せずに突然終了します...

次に、インデントが壊れています。具体的には、 2 スペース分インデントさport_number = 0れた a が続きます。for portこのコードをインタープリターに渡すと、SyntaxError.

そういえば、あなたは自分が何を期待していたのか、何を観察していたのかを決して教えてくれませんでし。あなたが報告するコードの匿名スニペットの明らかなバグや省略を列挙するだけではありません。(そして、1 つの質問についてこのように列挙することで割り当てを大幅に超えてしまったので、ここで終了します!)

Qを編集して、これらの点をすべて明確にしてもらえますか...?!

于 2015-02-07T23:10:42.127 に答える