py是构建简单脚本的一组小工具。只有蟒蛇3条,而且非常小:2kb!

boot.p的Python项目详细描述


https://badge.fury.io/py/boot.py.svghttps://travis-ci.org/mariocesar/boot.py.svg?branch=master

安装并使用

用PIP安装。

pip install boot.py

创建一个文件并导入boot。例如,这将安装一个 环境,安装需求,并创建一些文件。

#!/usr/bin/env python3importosimportvenvfrombootimportstep,runfrompathlibimportPathroot_path=Path(__file__).parent.resolve()venv_dir=root_path/'.venv'withstep(f'Creating virtualenv in {venv_dir.name}'):ifnotvenv_dir.exists():venv.create(venv_dir,with_pip=True)withstep('Installing requirements'):run(f'{venv_dir / "bin/pip"} install -r requirements.txt')withstep('Creating directories'):run(f'mkdir -p public/media')run(f'mkdir -p public/static')withstep('Environment file'):envfile=root_path/'.env'ifnotenvfile.exists():withopen(envfile,'w')ashandle:os.chmod(envfile,0o600)handle.write('')

这将输出。

$ ./script.py
Creating virtualenv in .venv ... [Ok]
Installing requirements ... [Ok]
Installing project ... [Ok]
Creating directories ... [Ok]
Environment file ... [Ok]

很简单!

您还可以编写任务来决定执行什么和执行什么顺序。

#!/usr/bin/env python3importosimportvenvfrombootimportstep,run,taskfrompathlibimportPathroot_path=Path(__file__).parent.resolve()venv_dir=root_path/'.venv'@taskdefbuild(this)withstep(f'Creating virtualenv in {venv_dir.name}'):ifnotvenv_dir.exists():venv.create(venv_dir,with_pip=True)withstep('Creating directories'):run(f'mkdir -p public/media')run(f'mkdir -p public/static')withstep('Environment file'):envfile=root_path/'.env'ifnotenvfile.exists():withopen(envfile,'w')ashandle:os.chmod(envfile,0o600)handle.write('')@taskdefrequirements(this)withstep('Installing requirements'):run(f'{venv_dir / "bin/pip"} install -r requirements.txt')@taskdefbackup(this)withstep(f'Backup db'):run('pg_dump -d database -f output.sql')if__name__=='__main__':tasks={'default':build>>requirements,'build':build,'requirements':requirements,}iflen(sys.argv)==1:ifsys.argv[0]intasks:tasks[sys.argv[0]]()else:print(f'Unknown task: {sys.argv[0]}')print(f'Available tasks are: {tasks.keys()}')else:default()

例如,有一些帮助程序可以用较少的代码构建脚本 我们可以用 一个简单的任务参数分析器:

fromboot.cliimportActionsCommandif__name__=='__main__':ActionsCommand.main(default=build>>requirements,build=build,requirements=requirements,}

此解析–帮助

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java将多个线程中的函数放入单个队列   数组在Java中,如何在不改变整数顺序的情况下找到整数组的顺序?   java控制器属于表示层?   java Apache Ivy和本地Maven repo如何处理使用Maven 3构建的快照   Java可与泛型类型进行比较   java这个表达式在泛型中是什么意思   JavaEclipse和TeamCity插件   java检测构造函数中的final是否为空   java如何在StanfordCoreNLP管道中同时使用词汇化和依赖性解析器?   java在AntUnit控制台日志中显示完整异常堆栈跟踪   lambda如何与Java 8供应商建立连锁关系   如何让GRPC的重试机制在Kubernetes集群中使用grpcjava工作?   如何使用openjdk:7 Docker映像和Gradle包装器避免“EC参数错误”?   java将集合映射扩展为一维映射新的“无法推断函数接口类型”