跳转到主要内容

编写类似shell的Python脚本来控制持续构建。

项目描述

我过去经常编写小的bash脚本,用于创建虚拟环境,并使用我构建机器上安装的几个Python版本之一执行 python setup.pynosetests 命令。但由于bash脚本在Windows上不受支持,所以我希望用Python来编写这个脚本。

cish 是一组实用函数,用于编写类似bash的Python脚本,用于处理多个已安装的Python解释器。

让我们开始吧!

import cish
cish.rm("build")
cish.default.pip("install", "nose")
cish.default.python("setup.py", "build")
cish.default.nosetests()

这将删除(如果存在)包含所有内容的 build 目录,安装 nose,并构建和测试软件包。

default 是一个“环境”,由一个Python解释器、库路径以及如 pip 之类的实用程序组成。 default 是执行脚本的解释器的环境。

我们还可以使用不同的解释器

import cish
env = cish.from_interpreter("path/to/python")
env.python("setup.py", "build")
env.nosetests()

Python解释器的安装位置通常取决于测试机器。我们可以在几个位置之一放置一个简单的JSON文件,例如在 /etc/cish.json 中,以指定其位置

{
    "2.6.9": "/opt/python2.6.9/bin/python",
    "2.7.8": "/opt/python2.7.8/bin/python"
}

然后我们可以在我们的脚本中选择解释器,比如由jenkins设置的环境外部变量

import cish, os
env = cish.from_config()[os.environ["PYTHON_VERSION"]]
env.python("setup.py", "build")

virtualenv 也非常简单

import cish
venv = cish.default.virtualenv("optional/location")
venv.pip("install", "package_to_install_inside_virtualenv")

错误报告和其他贡献

该项目托管在此处 cish github页面

替代方案

你可能想看看 sh,这是一个很酷的库,可以在不直接处理 subprocess 的情况下运行可执行文件。它比 cish 范围更广,但缺乏我们对不同Python安装和特定于OS的文件扩展名和安装位置的抽象。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪一个,请了解有关安装包的更多信息。

源分布

cish-0.2.1.zip (15.3 kB 查看哈希值)

上传于

支持