运行 Junos OS 的设备上的 Python 模块概述
Python 解释器包含在 Junos 操作系统 (Junos OS) 中。Junos OS 和 Junos OS Evolved 包括许多 Python 模块,可用于 Python 应用程序,包括提交、事件、操作和 SNMP 自动化脚本;Juniper Extension Toolkit (JET) 应用程序;和 YANG 操作和翻译脚本特定模块的使用取决于执行该模块的用户的权限。
表 1 概述了特定版本中每组模块升级的常规更新和受影响的平台。要确定某个平台支持特定版本的 Python(2.7 或 3)用于给定类型的脚本的初始版本,请查阅 功能探索者 工具。
释放 |
更改说明 |
支持的平台 |
---|---|---|
Junos OS 版本 18.1R1 |
Python 2.7 的模块升级 |
MX240、MX480、MX960 和 vMX 路由器 |
Junos OS 版本 19.2R1 |
Python 2.7 的模块升级 |
MX 系列路由器和 QFX 系列交换机 |
Junos OS 版本 19.4R1 |
Python 2.7 的模块升级 Python 3.x 的模块添加(提交、事件、操作和 SNMP 脚本) |
ACX 系列、MX 系列和 PTX 系列路由器 EX 系列和 QFX 系列交换机 SRX 系列服务网关 |
Junos OS 版本 20.2R1 |
Python 3.x 的模块添加 |
ACX 系列、MX 系列和 PTX 系列路由器 EX 系列和 QFX 系列交换机 SRX 系列服务网关 |
Junos OS Evolved 版本 21.2R1 |
Python 3.x 的模块添加 |
PTX 系列路由器 |
表 2 概述了 Junos OS 和 Junos OS Evolved for Python 2.7 和 Python 3 中提供的 Python 模块。
软件包/模块 |
描述 |
支持 |
支持 |
||
---|---|---|---|---|---|
2.7 |
3.x |
2.7 |
3.x |
||
|
确定针对应用程序特定用户数据的相应平台特定目录的路径。 |
Y |
Y |
Y |
Y |
|
解析和串行化抽象语法符号 1 (ASN.1) 结构的库。 |
Y |
Y |
Y |
Y |
|
Python 软件包,使您无需编写所有样板代码即可写课。 |
– |
– |
– |
Y |
|
有限状态机器的 Python 表达式。 |
– |
– |
– |
Y |
|
密码散列和存储库。 |
– |
– |
– |
Y |
|
C Python 的异端功能接口,使 Python 应用程序能够与 C 代码交互。 |
Y |
Y |
Y |
Y |
|
Python 2 和 3 的通用字符编码检测器。 |
Y |
Y |
Y |
Y |
|
提供象征性持续支持的库。 |
– |
– |
– |
Y |
|
在 PyCrypto 软件包中收集 Python 模块,以实施加密算法和协议。这些模块提供各种安全散列和加密功能。 |
Y |
Y |
Y |
Y |
|
在 Python 中提供加密秘诀和原元。 |
Y |
Y |
Y |
Y |
|
提供用于异步执行可呼叫的接口。 Python 3 将此软件包作为标准库的一部分。 |
Y |
Y |
Y |
Y |
|
提供 ECDSA 加密的实施,可用于创建密钥对、签名和验证签名。 |
Y |
Y |
Y |
Y |
|
Python 3 将此功能作为标准库的一部分。 |
Y |
Y |
Y |
Y |
|
Twisted 本机 RPC 协议的新版本。 |
– |
– |
– |
Y |
|
Python 2 和 Python 3 兼容性库。 |
– |
– |
– |
Y |
|
支持使用协议缓冲区 (protobuf)。 |
Y |
Y |
Y |
Y |
|
Python gRPC 工具。 |
Y |
Y |
Y |
Y |
|
Pure-Python 实施不可变 URL。 |
– |
– |
– |
Y |
|
支持 RFC 5891, 应用程序 中的国际化域名 (IDNA): 协议中定义的应用程序中的国际化域名。 |
Y |
Y |
Y |
Y |
|
Python 项目版本库。 |
– |
– |
– |
Y |
|
提供在 IPv4 和 IPv6 地址上创建、操作和操作的功能。 Python 3 将此模块作为标准库的一部分。
注意:
运行 Junos OS 且使用 Python 脚本中的 IPv6 升级了 FreeBSD 支持的设备,从 Junos OS 版本 19.3R1 开始。 |
Y |
Y |
Y |
Y |
|
面向 Python 的快速、安全、设计师友好的模板语言。 有关 Jinja2 的详细信息,请 参阅 http://jinja.pocoo.org/docs/dev/。 |
Y |
Y |
Y |
Y |
|
适用于 Python 的微框架,使您能够自动化运行 Junos OS 的设备。Junos PyEZ 旨在提供用户在专为自动化任务构建的环境中在 Junos OS 命令行界面 (CLI) 上具备的功能。 有关详细信息,请 参阅 Junos PyEZ。 |
Y |
Y |
Y |
Y |
|
Python 模块,用于将 XML 转换为 Python 数据结构并将 Python 数据结构转换为 XML。 有关详细信息,请 参阅 https://jxmlease.readthedocs.io/。 |
Y |
Y |
Y |
Y |
|
XML 处理库,将 C 库 libxml2 和 libxslt 的速度和 XML 功能完整性与本机 Python API 的简单性相结合。 有关详细信息,请 参阅 http://lxml.de。 |
Y |
Y |
Y |
Y |
|
提供逃生和格式化 XML、HTML 或 XHTML 标记安全字符串的能力。 |
Y |
Y |
Y |
Y |
|
通过 NETCONF 协议促进客户端脚本和应用程序开发。 有关 |
Y |
Y |
Y |
Y |
|
可处理第 2 层和第 3 层网络地址的网络地址操纵库。 |
Y |
Y |
Y |
Y |
|
Python 软件包的核心实用程序。 |
Y |
Y |
Y |
Y |
|
用作客户端类,允许应用程序连接到消息队列遥测传输 (MQTT) 代理,以发布消息、订阅主题和接收已发布的消息。 |
Y |
Y |
Y |
Y |
|
SSH2 协议库,可提供建立基于 SSH2 协议的连接的能力。此模块支持适用于客户端和服务器模式的所有主要密码和散列方法。
注意:
|
Y |
Y |
Y |
Y |
|
提供 API,用于查找和管理 Python 软件包和版本依赖项,以及访问捆绑文件和资源。 |
Y |
Y |
Y |
Y |
|
有关运行进程和系统利用率(CPU、内存、磁盘和进程)的检索信息库。
注意:
|
Y |
Y |
Y |
Y |
|
可扩展 YANG 验证器和转换器,支持 YANG 模块的处理、验证和转换。 Junos OS 在 Python 3 中添加了支持 |
Y |
Y |
Y |
– |
|
Python 实施抽象语法符号一 (ASN.1) 类型和 BER/CER/DER 代码 (X.208)。 |
Y |
Y |
Y |
Y |
|
ASN.1 数据结构的集合,表示为 Python 类。 |
– |
– |
– |
Y |
|
使用纯 Python 编写的 C 语言的解析器。该模块可以集成到需要解析 C 源代码的应用程序中。 |
Y |
Y |
Y |
Y |
|
Python 绑定到网络和加密库 (NaCl)。 |
– |
– |
– |
Y |
|
Python 包装模块围绕 OpenSSL 库的一个子集。 |
– |
– |
– |
Y |
|
提供创建和执行简单语法的替代方法。 |
Y |
Y |
Y |
Y |
|
提供日期模块的扩展。 |
– |
– |
– |
Y |
|
支持使用 Python 发送 HTTP/1.1 请求的库。 |
Y |
Y |
Y |
Y |
|
Paramiko 的 SCP 协议实施,使用 Paramiko 传输通过 SCP 协议发送和接收文件。 |
Y |
Y |
Y |
Y |
|
pySerial 软件包中的模块,用于封装串行端口的访问。 |
Y |
Y |
Y |
Y |
|
服务识别 pyOpenSSL 和加密验证。 |
– |
– |
– |
Y |
|
旨在促进包装 Python 项目的库。 |
– |
Y |
– |
Y |
|
Python 2 和 Python 3 兼容性库。 |
Y |
Y |
Y |
Y |
|
为 Apache Thrift 框架提供 Python 绑定。
|
Y |
– |
– |
– |
|
面向对象的状态机器实施。 |
– |
– |
– |
Y |
|
基于事件的互联网应用程序框架。 |
– |
– |
– |
Y |
|
Python 的 HTTP 客户端。 |
Y |
Y |
Y |
Y |
|
PyYAML 软件包中的模块,用于以 YAML 格式序列化和去线化数据。 |
Y |
Y |
Y |
Y |
|
PyYAML 的 YAML 加载程序和自卸器,在加载或丢弃文件时使用 |
– |
– |
– |
Y |
|
此软件包允许您为 Python 指定接口。 |
– |
– |
– |
Y |