Python API 用于异步控制本地或远程、独立或并行的 unix 进程。
项目描述
Execo 提供了一个 Python API,用于异步控制本地或远程、独立或并行的 unix 进程。它特别适合在本地或远程主机上快速轻松地编写并行/分布式操作的工作流程:自动化科学工作流程、进行计算机科学实验、执行自动化测试等。核心 python 包是execo。execo_g5k包为Grid5000测试平台提供了一组工具和扩展。execo_engine包提供了简化计算机科学实验开发的工具。
执照
Execo 的版权属于 INRIA Rhone-Alpes, Service Experimentation et Developpement。
Execo 是免费软件:您可以根据自由软件基金会发布的 GNU 通用公共许可证的条款重新分发和/或修改它,许可证的第 3 版或(由您选择)任何更高版本。
Execo 的分发是希望它有用,但没有任何保证;甚至没有对适销性或特定用途适用性的默示保证。有关详细信息,请参阅 GNU 通用公共许可证。
您应该已经收到了一份 GNU 通用公共许可证的副本以及 Execo。如果没有,请参阅 < http://www.gnu.org/licenses/ >
版本
最新稳定版本:v2.6.8 (2021-11-17)
安装说明
有用的链接
平台
适用于 linux(主要开发平台)、darwin(macosx)
应该在 bsd 上工作(未经测试)
在 windows 或 cygwin 上不知道(未测试)
先决条件
execo 安装绝对需要python 2.6 / 2.7 或 >=3.2。execo_g5k需要python-requests。可选包是(debian 包名称,按重要性降序排列):
在python 2.6下,execo_engine.engine.Engine需要 python-argparse
python-keyring允许在桌面环境密钥环中存储execo_g5k.api_utils api 密码(只允许询问一次)。
python-psycopg2用于优化 Grid5000 OAR 规划的接口。
sphinx-doc, graphviz用于构建文档(普通用户通常不需要)。
python-matplotlib (>= 1.2.0) 用于一些图形表示。
python-networkx, python-pygraphviz, graphviz模块 execo_g5k.topology。networkx 的更高版本(至少 v1.11)也需要python-pydotplus,但此依赖项未在 debian 包中明确列出(截至 2017 年 7 月)。
在运行时,连接到远程主机需要ssh、scp或类似的连接工具,以及可选的 taktuk(可能 >= 3.6。http: //taktuk.gforge.inria.fr/)。execo.action.ChainPut需要远程主机上的bourne shell 和netcat 。
安装
要从源包 (.tar.gz) 或 git 树安装 execo:
$ python setup.py install [--user]
构建文档(如果 sphinx 可用):
$ python setup.py build_doc
安装文档(如果 sphinx 可用):
$ python setup.py install_doc
可以使用pip或 easy_install自动安装 execo :
$ pip install --user execo
或者:
$ easy_install --user execo
可以生成一个 debian 包。例如,在 execo 包的顶层目录中,运行(.deb 将在 ../ 中生成):
$ dpkg-buildpackage -us -uc
用法
请参阅https://mimbert.gitlabpages.inria.fr/execo/上的模块 execo 和 execo_g5k 的 html 文档
错误
Execo 经常用于在 Grid5000 内外执行高级实验和管理/监控任务。我们积极修复错误。应向http://bugzilla.inria.fr报告错误 (产品:execo)
出版物
Matthieu Imbert、Laurent Pouilloux、Jonathan Rouzaud-Cornabas、Adrien Lèbre、Takahiro Hirofuchi “使用 EXECO 工具箱执行自动和可重复的云实验”第一届国际研讨会上使用和构建云测试平台 UNICO,与 IEEE CloudCom 2013 并置2013
如何贡献
通过发送干净的补丁或报告错误开始贡献。
与编码和命名风格保持一致
代码必须与 python 2.6、2.7 和 3.2+ 兼容(参见 https://mimbert.gitlabpages.inria.fr/execo/python2-python3.html)
使用提供的核心系统(例如配置系统、tty 着色系统、记录器等),而不是自己开发。
提供文档化代码(内部文档以及需要的用户文档)
在添加依赖项或处理线程、信号(特别是:创建线程)之前询问核心开发人员
用空格缩进,而不是制表符。一级缩进是四个空格(如果需要:使用reindent.py -rnv .在 execo 顶级目录中)
推荐的提交消息格式:
[<module_name>] <category>:提交信息。
<module_name> 可以是 execo、execo_g5k、execo_engine。如果提交不是特定于模块的,则省略。
<category> 是自由格式,但应指明提交影响模块的哪些部分。如果提交不是特定于模块部分,则省略。