运行外部进程的多功能实用函数
项目描述
ProcRunner
运行外部进程的多功能实用函数
免费软件:BSD许可证
功能
运行外部进程并等待其完成
不会发生死锁,无论进程的stdout/stderr输出行为如何
返回退出码、stdout、stderr(分别作为字节数组),作为subprocess.CompletedProcess对象
进程可以在自定义环境中运行,无论是修改当前环境还是从头开始创建新环境
stdin可以提供给进程
默认情况下会打印 stdout 和 stderr,可以被禁用。
stdout 和 stderr 可以传递给任何任意函数进行实时处理(分别,作为 Unicode 字符串)。
可选地强制对进程设置时间限制,如果超过则引发 subprocess.TimeoutExpired 异常。
致谢
本包是用 Cookiecutter 和 audreyr/cookiecutter-pypackage 项目模板创建的。
历史
2.3.3 (2022-03-23)
允许指定 'preexec_fn' 和 'creationflags' 关键字,这些关键字将被传递给 subprocess 调用。
2.3.2 (2022-01-28)
run() 函数现在理解 stdin=subprocess.DEVNULL 用于关闭子进程 stdin,而不是通过现有 stdin 连接,这是当前默认行为。
2.3.1 (2021-10-25)
添加 Python 3.10 支持
2.3.0 (2020-10-29)
添加 Python 3.9 支持,删除 Python 3.5 支持
修复 subprocess 执行中的文件描述符泄漏
2.2.0 (2020-09-07)
现在已弃用使用未命名参数(除了命令列表作为第一个参数)调用 run() 函数。由于在未来的版本中将删除多个参数,未命名参数的使用会导致未来的混淆。请使用明确的键控参数代替(#62)。
已弃用 run() 函数的 debug 参数(#63)。 此参数仅用于调试 NonBlockingStream* 类。这些类将在未来的版本中替换,因此该参数将不再有用。调试信息仍然可以通过标准的日志记录机制获取。
支持 Python 3.5 的最终版本
2.1.0 (2020-09-05)
弃用了返回对象的数组访问(#60)。 在未来的版本中,返回对象将变为 subprocess.CompletedProcess,不再允许基于数组的访问。有关数组元素到属性的转换表,请参阅上述链接的拉取请求。
添加了一个新的参数 'raise_timeout_exception'(#61)。
2.0.0 (2020-06-24)
仅支持 Python 3.5+,已删除对 Python 2.7 的支持
已删除弃用的函数别名 run_process()
修复了 Windows 上的稳定性问题
1.1.0 (2019-11-04)
添加 Python 3.8 支持,删除 Python 3.4 支持
1.0.2 (2019-05-20)
停止环境覆盖变量泄漏到进程环境
1.0.1 (2019-04-16)
对返回对象进行了一些微小的修复(实现相等性,标记为不可哈希)
1.0.0 (2019-03-25)
在参数中支持文件系统路径对象(PEP-519)
将返回对象更改为类似于 Python 3.5+ 中引入的 subprocess.CompletedProcess
0.9.1 (2019-02-22)
让弃用警告指向正确的代码位置
0.9.0 (2018-12-07)
在打印输出时捕获 UnicodeEncodeError。受影响的字符被替换,并记录一次警告。暗示 PYTHONIOENCODING 设置不正确。
0.8.1 (2018-12-04)
修复了一些弃用警告
0.8.0 (2018-10-09)
添加参数 working_directory 以设置子进程的工作目录
0.7.2 (2018-10-05)
官方支持 Python 3.7
0.7.1 (2018-09-03)
接受以数值形式覆盖环境变量。
0.7.0 (2018-05-13)
修复 Unicode。修复无效 UTF-8 输入时的崩溃。
明确指出 stdout/stderr 值作为字节字符串返回。
回调以 UTF-8 Unicode 字符串解码接收数据,未知字符由 ufffd(Unicode 替换字符)替换。同样适用于输出打印。
标记 Windows 上的 stdin 为损坏。
0.6.1 (2018-05-02)
维护版本,添加了一些用于可执行文件解析的测试。
0.6.0 (2018-05-02)
修复了包含点('.')和文件扩展名(如 '.bat')的命令的 Win32 API 可执行文件解析。
0.5.1 (2018-04-27)
修复了 Windows 上 Win32API 依赖项安装。
0.5.0 (2018-04-26)
新增关键字 'win32resolve',仅在 Windows 上生效,默认启用。这会导致 procrunner 调用 Win32 API FindExecutable() 函数尝试查找具有对应名称的非 .exe 文件。这意味着 .bat/.cmd 等 . 文件现在可以运行而无需显式指定它们的扩展名。仅支持 Python 2.7 和 3.5+。
0.4.0 (2018-04-23)
Windows 上的 Python 2.7 支持。Python 3 尚不支持 Windows。
0.3.0 (2018-04-17)
run_process() 重命名为 run()
Python 3 兼容性修复
0.2.0 (2018-03-12)
Procrunner 现已兼容 Python 3.3-3.6。
0.1.0 (2018-03-12)
首次发布于 PyPI。
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定要选择哪个,请了解更多关于 安装包 的信息。
源分布
构建分布
procrunner-2.3.3.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1717cbd7ac70876d1804777bf5775ceae1ea6a7b95c84d1d4423f0442d9e5b12 |
|
MD5 | be738c39a259f4a26de23055e398464d |
|
BLAKE2b-256 | 27e6fcb51b95b2b9597381e81eddd68e7dad83622f2b5bb96d16eb232ffe0ae7 |
procrunner-2.3.3-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d9aec91fbde26f5824896d3ebb6b79169cc45dd59a6e2851f1dc2a8cb2e1f688 |
|
MD5 | 833b3f4cb58a41976cbb623289fc9317 |
|
BLAKE2b-256 | ca1fdb51cadc820fb81ff014d8d5f675795d48d7acd5ccce126343822d9f8272 |