
Terraform 的 Python 绑定。将 Terraform 打包为共享库,无需单独安装 terraform 即可从 Python 执行 Terraform 命令和解析配置。
语言: English | 中文
文档: https://prodesire.github.io/py-libterraform/zh/
pip install libterraform
线程说明:
TerraformCommand可以被多个 Python 线程调用,但由于 Terraform CLI 使用进程级全局状态,共享库内部会串行执行 Terraform 命令。如需 真正并行的 Terraform 操作,请使用TerraformPool(或多个进程隔离)。
from libterraform import TerraformCommand, TerraformConfig
# 执行 Terraform 命令
cli = TerraformCommand("path/to/module")
cli.init(check=True)
cli.plan(check=True)
# 解析 Terraform 配置
module, diagnostics = TerraformConfig.load_config_dir("path/to/module")
asyncio 应用可以使用 AsyncTerraformCommand 等待 Terraform 操作,同时避免阻塞
event loop:
from libterraform import AsyncTerraformCommand
cli = AsyncTerraformCommand("path/to/module")
await cli.validate(check=True)
使用 TerraformPool 可以在多个 worker 进程间并行执行 Terraform 命令:
from libterraform import TerraformPool
with TerraformPool(max_workers=4) as pool:
for result in pool.map("validate", ["modules/a", "modules/b"], check=True):
print(result.value["valid"])
pool 会启动 worker 进程,因此上述代码必须运行在 if __name__ == "__main__":
保护之下。快速开始
可在几秒内创建一个可运行的模块,并行执行
提供了完整的 pool 示例。
如果你正在比较 Python Terraform 生态中的不同选择,可以阅读
如何选择 Python Terraform 集成方式:
其中对比了 python-terraform、TofuPy、直接 subprocess、Pulumi、CDKTN
和已弃用的 CDK for Terraform。
安装 uv,然后:
make install # 安装依赖和 Git hooks
make build # 构建共享库
make test # 运行测试
make lint # 运行检查
make doc-serve # 预览文档站
详见开发指南。
$ claude mcp add py-libterraform \
-- python -m otcore.mcp_server <graph>