5分钟上手 Monty:极简安全的Python解释器

本指南将帮助你在5分钟内安装Monty并运行第一个AI生成的Python代码

环境要求

支持的操作系统

macOS Linux Windows(通过WSL)

运行环境

Python >=3.8 必需

所需工具

pip

Python包管理器,用于安装pydantic-monty

必需

操作步骤

1

安装Monty

使用pip安装pydantic-monty包

安装Monty Python包
pip install pydantic-monty

预期结果:Successfully installed pydantic-monty-x.x.x 等类似信息

如果遇到权限问题,可以尝试添加 --user 参数

2

创建第一个Monty脚本

创建一个简单的Python文件来测试Monty

创建测试文件
echo "import pydanticmonty

code = '''
x = 41
print(f'Hello Monty! The answer is {x + 1}')
'''

m = pydanticmonty.Monty(code)
result = m.run()
print(f'Output: {result.output}')" > monty_test.py

预期结果:创建monty_test.py文件

在Windows上,可以使用文本编辑器创建文件并复制代码

3

运行Monty脚本

执行测试脚本,验证Monty是否正常工作

运行Monty测试脚本
python monty_test.py

预期结果:Hello Monty! The answer is 42 Output: Hello Monty! The answer is 42

如果看到输出结果,说明Monty已成功运行Python代码

4

尝试外部函数调用

创建一个更复杂的示例,展示Monty如何与外部函数交互

创建外部函数示例
echo "import pydanticmonty

# 定义外部函数
def fetch(url):
    return f'Fetched data from {url}'

code = '''
data = fetch('https://example.com')
print(f'Result: {data}')
'''

m = pydanticmonty.Monty(code, externalfunctions=['fetch'])
result = m.run()
print(f'Final output: {result.output}')" > monty_external.py
运行外部函数示例
python monty_external.py

预期结果:Result: Fetched data from https://example.com Final output: Result: Fetched data from https://example.com

这个示例展示了Monty如何安全地调用外部定义的函数

验证成功

如果所有步骤都成功执行,你将看到以下结果:

成功安装pydantic-monty包
Monty能够执行基本的Python代码
Monty能够调用外部函数并返回结果
没有出现权限错误或导入错误

快速提示

性能

Monty启动极快,通常在微秒级别,适合需要快速执行AI生成代码的场景

配置

使用inputs参数向Monty代码传递变量,使用externalfunctions参数控制可调用的外部函数

安全

Monty默认阻止文件系统、网络和环境变量访问,所有外部访问必须通过你提供的外部函数

常见问题

1

ModuleNotFoundError: No module named 'pydanticmonty'

确保已正确安装:pip install pydantic-monty,注意包名中的连字符

2

Permission denied 错误

使用 pip install --user pydantic-monty 或 sudo pip install pydantic-monty

3

Monty不支持某些Python语法

Monty支持Python子集,主要用于AI生成的简单代码。复杂功能需要通过外部函数实现

下一步

查看官方示例

访问GitHub仓库查看更多高级用法示例

尝试类型检查

使用typecheck=True参数启用Python类型提示检查

实验快照功能

尝试使用dump()和load()方法保存和恢复解释器状态

助手