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 Spring安全编程授权   java Android库AAR取决于另一个库   Java/Groovy双精度语句问题   爪哇。查看安卓监视器图形时,release()不会减少我的内存   java无法在子类中使用EventFiringWebDriver对象   java第一个if语句始终为true,但第二个if语句不为true   java如何从作为字符串提供的XML源代码创建可绘制(或XmlResourceParser对象)?   多线程Java并发问题锁和同步方法   java Android Studio注册链接   java ArrayList of ArrayList of String   使用Shadow重新定位的包中的java Kotlin属性不起作用   java在接口org上找不到方法。阿帕奇。伊巴蒂斯。遗嘱执行人。陈述名为prepare的语句处理程序   如何在Java中放大2倍?   java当参数作为RequestBody和RequestParam发送时,sprig控制器无法识别发送的请求