0

クリックが原因だと思われる問題が発生しています。このコードを実行しようとしていますが、引数が main() に渡されていることを示す同じトレースバック TypeError が引き続き発生します。

#!/usr/bin/python
# -*- coding: utf-8 -*-

import sys
import boto
import boto.ec2
import click

@click.command()
@click.option('--region', '-r', default='us-west-2', help='AWS Region')

def main():
    try:
        ec2 = boto.ec2.connect_to_region(region)
    except Exception, error:
        print("Boto Error: %s" ) % str(error)
    else:
        print("It's working!")
    finally:
        sys.exit(1)

if __name__ == "__main__":
    main()

このコードは非常に単純に見えるので、正しく動作するのを防ぐためにここで何かをしているのですか?

Traceback (most recent call last):
  File "test.py", line 21, in <module>
    main()
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/click-5.1-py2.7.egg/click/core.py", line 700, in __call__
    return self.main(*args, **kwargs)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/click-5.1-py2.7.egg/click/core.py", line 680, in main
    rv = self.invoke(ctx)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/click-5.1-py2.7.egg/click/core.py", line 873, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/click-5.1-py2.7.egg/click/core.py", line 508, in invoke
    return callback(*args, **kwargs)
TypeError: main() takes no arguments (1 given)
4

1 に答える 1

2

私はclickモジュールに精通していませんが、ドキュメントからわかることから、コマンドラインから渡すパラメーターを関数に受け入れさせたいので、に変更def main():する必要があります。def main(region):

于 2016-03-04T06:13:04.397 に答える