我希望能够将用户从命令行输入的参数传递给Python脚本的入口点。目前为止,我尝试使用argparse将参数从命令行传递给test.py脚本。但是当我尝试传递参数时,它们未被识别,并收到以下错误提示:
load_entry_point('thesaurus==0.1', 'console_scripts', 'thesaurus')()
TypeError: find_synonym()缺少一个必需的位置参数:'argv'
我查看了这里的其他示例,但都无法使任何解决方案起作用。
def main(argv):
if argv is None:
argv = sys.argv
parser = argparse.ArgumentParser(description='Enter string')
parser.add_argument('string', type=str, help='Enter word or words', nargs='*')
args = parser.parse_args(argv[1:])
print(args)
if __name__ == "__main__":
sys.exit(main(sys.argv))
我的setup.py脚本入口点如下所示
setup(entry_points={'console_scripts': ['test=test_folder.main:main']})
我期望发生的情况类似于运行 python main.py main foo。当将 "hello" 传递给函数时,将成功打印出来。
argv
在测试main
时会给予一些灵活性。当以传统方式调用此脚本时,它可以正常运行。 - hpaulj