【问题标题】:execut python script with parameter执行带参数的python脚本
【发布时间】:2020-10-09 06:55:33
【问题描述】:

当我执行这个 python 脚本时,我尝试使用 python 在 vmware (vsphere) 上获取虚拟机名称:

https://github.com/vmware/pyvmomi-community-samples/blob/master/samples/get_vm_names.py

我有这个消息:

python3 test2.py --host ip_of_vmware
usage: test2.py [-h] -s HOST [-o PORT] -u USER [-p PASSWORD] [-S]
test2.py: error: the following arguments are required: -u/--user

我不知道如何执行这个脚本。

我认为是这行用来输入参数:

 si = SmartConnectNoSSL(host=args.host,
                               user=args.user,
                               pwd=args.password,
                               port=int(args.port))
        atexit.register(Disconnect, si)

我想知道如何执行这个脚本。 感谢您的任何回复,

【问题讨论】:

标签: python


【解决方案1】:

程序所需的参数由该程序中的 setup_args 函数构建,而该函数又似乎由该行构建:

parser = cli.build_arg_parser()

这是在我没有的包中,所以我看不到它在做什么。

尽管如此,帮助消息没有明确说明哪些参数是强制性的,但它暗示了这个大方向。我相信 [ ] 中的参数是可选的,其他所有内容都是必需的,因此您至少需要 -s HOST 和 -u USER

python3 test2.py -s HOST -u USER

python3 test2.py --host HOST --user USER

【讨论】:

  • 我的脚本是用:python3 test4.py --host xxx --port 80 --user xxx --password xxx 执行的,但我有这个消息:Traceback(最近一次调用最后一次):文件“test4.py”,第 171 行,在 main() 文件“test4.py”,第 130 行,在 main 中 si = SmartConnect(host=args.host, user=args.user, TypeError: SmartConnect() got意外的关键字参数“未验证”
  • 您已从使用 SmartConnectNoSSL 改为使用 SmartConnect...“未验证”闻起来可疑的是 SSL 相关错误,而不是与脚本执行相关的语法错误。
猜你喜欢
  • 2013-10-24
  • 2018-04-13
  • 2013-04-08
  • 2020-06-22
  • 2011-10-09
  • 1970-01-01
  • 2012-08-21
  • 2015-03-15
相关资源
最近更新 更多