argparse库和virtualenvwrapper库

132 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 5 天,点击查看活动详情

最近在看神经网络模型的代码,用到了argparse库和virtualenvwrapper库,用这篇文章来做个记录

argparse库-命令行参数解析库

argparse模块使编写用户友好的命令行界面变得容易。该程序定义了它需要的参数,argparse 并将弄清楚如何解析来自sys.argv的参数。argparse 模块还会自动生成帮助和使用信息。当用户为程序提供无效参数时,该模块也会发出错误。

常见使用操作如下:

创建ArgumentParser对象ArgumentParser()

image.png

添加参数add_argument()

  • 第一个参数:命令行参数名称
  • 后面的参数:该命令行参数属性

参数属性

  • nargs:参数可以使用的次数。int,?,*,+或argparse.REMAINDER
  • type:自动将参数转换为给定类型。intfloatargparse.FileType('w'), 或可调用函数
  • default:未提供参数值时使用的默认值
  • choices:将参数值限制在特定选择范围内。['cpu', 'gpu'],range(1, 10)或 Container实例
  • dest:指定结果命名空间中的属性名称
  • metavar:参数的备用显示名称
  • const:存储一个常量值
  • action:指定如何处理参数。'store''store_const''store_true''append''append_const''count''help''version'
  • required:指示参数是必选还是可选。True或False
  • help:参数的帮助信息
parser.add_argument("--weigths_my", nargs='+',type=str, default=True, help="direction information")
parser.add_argument("--do_train", action='store_true', default=True, help="do train")
parser.add_argument("--do_predict", action='store_true', default=False, help="do predict")
parser.add_argument("--model_name", default="Model", type=str, required=False, help="The name of model.")
parser.add_argument("--batch_size", default=24, type=int, help="Batch size per GPU/CPU for training.", )
parser.add_argument('--device', choices=['cpu', 'gpu'], default="gpu", help="Select which device to train model, defaults to gpu.")

- 添加位置参数和可选参数

  • 位置参数:指定了位置参数,如果执行程序时没有携带参数,则会报错。

image.png

  • 可选参数:在参数前加上前缀--,即意味着这个参数是可选参数。可选参数可以不指定,则参数值为None。使用可选参数是需要先声明该参数,再指定该参数的值

image.png

解析参数parse_args()

image.png

利用args变量获取参数值

image.png

virtualenvwrapper库-管理虚拟环境

  • virtualenvwrapper库可以更加便利的管理虚拟环境

安装virtualenvwrapper

image.png

修改虚拟环境存放的默认路径

  • 通过添加系统变量WORKON_HOME对默认路径
  • 设置路径为:我的电脑->右键->属性->高级系统设置->环境变量->系统变量 image.png

创建虚拟环境的时候指定Python版本

  • 可以通过指定--python的参数来指定具体的python路径:

image.png

virtualenvwrapper基本使用

  • 创建虚拟环境mkvirtualenv my_env
  • 切换到某个虚拟环境workon my_env
  • 退出当前虚拟环境deactivate
  • 删除某个虚拟环境rmvirtualenv my_env
  • 列出所有虚拟环境lsvirtualenv
  • 创建虚拟环境lsvirtualenv