是否有任何“正确”的方式来自动使用python构建脚本?
我想让我的脚本做这样的事情:
cd /somewhere git pull npm run build make deploy
我在Google的任何地方都看到:os.system("xxx")
或subprocess.call(...)
。
在BASH中,上面的操作很简单,但我想创建一个cli python应用程序 为我创造所有这些东西。
答案 0 :(得分:0)
本着“不要重新发明轮子”的精神,有很多方法可以使用python自动进行构建,从而免费获得诸如依赖项管理之类的东西。
一个有用的工具是doit。
要想出个主意,这是一个非常简单的示例,类似于您的用例:
import os
MY_PRJ_ROOT='/home/myname/my_project_dir'
def task_cd():
def cd_to_somewhere():
os.chdir(MY_PRJ_ROOT)
return {
'actions': [cd_to_somewhere]
}
def task_git_pull():
"""pull my git repo"""
return {
'actions': ['git pull'],
}
def task_build_rust_app():
"""build by awesome rust app"""
return {
'actions': ['cargo build']
}
假设上面是一个名为dodo.py
的文件,它是doit任务的默认名称,运行方式为:
> doit
也值得注意(据我所知,它们并不是python自动化工具的详尽列表):
答案 1 :(得分:0)
os.system
调用外壳程序并将命令发送到外壳程序,因此您可以轻松地做到这一点:
import os
cmd == """\
cd /somewhere
git pull
npm run build
make deploy
""""
os.system(cmd)
这很容易。我们往往会忘记os.system
并没有直接执行命令,而是将命令分派给了shell。因此,我们可以使用重定向和管道。