diff --git a/tensorboard/program.py b/tensorboard/program.py index e6048bcc47..938f17ab20 100644 --- a/tensorboard/program.py +++ b/tensorboard/program.py @@ -177,7 +177,6 @@ def configure(self, argv=('',), **kwargs): description=('TensorBoard is a suite of web applications for ' 'inspecting and understanding your TensorFlow runs ' 'and graphs. https://github.com/tensorflow/tensorboard ')) - base_parser.set_defaults(**{_SUBCOMMAND_FLAG: _SERVE_SUBCOMMAND_NAME}) subparsers = base_parser.add_subparsers( help="TensorBoard subcommand (defaults to %r)" % _SERVE_SUBCOMMAND_NAME) @@ -208,6 +207,11 @@ def configure(self, argv=('',), **kwargs): with argparse_util.allow_missing_subcommand(): flags = base_parser.parse_args(argv[1:]) # Strip binary name from argv. + if getattr(flags, _SUBCOMMAND_FLAG, None) is None: + # Manually assign default value rather than using `set_defaults` + # on the base parser to work around Python bug #9351 on old + # versions of `argparse`: + setattr(flags, _SUBCOMMAND_FLAG, _SERVE_SUBCOMMAND_NAME) self.cache_key = manager.cache_key( working_directory=os.getcwd(),