跳转到主要内容

在不同的conda环境中运行子进程。

项目描述

conda 子进程

在不同的conda环境中运行子进程。

示例

创建新的conda环境 - 在此示例中,创建一个Python 3.12的conda环境

conda create -n py312 python=3.12 

子进程接口

在已安装conda_subprocess的base环境中打开一个Python外壳,并在py312环境中执行python --version

from conda_subprocess import check_output
check_output("python --version", prefix_name="py312")
>>> b'Python 3.12.1\n'

或者,可以使用绝对路径指定环境

from conda_subprocess import check_output
check_output("python --version", prefix_path="/Users/janssen/mambaforge/envs/py312")
>>> b'Python 3.12.1\n'

正如预期的那样,子进程调用参数的过程也可以定义为列表

from conda_subprocess import check_output
check_output(["python", "--version"], prefix_path="/Users/janssen/mambaforge/envs/py312")
>>> b'Python 3.12.1\n'

除了 check_output() 函数之外,还实现了 check_call() 函数

from conda_subprocess import check_call
check_call("python --version", prefix_name="py312")
>>> Python 3.12.1
>>> 0

以及 call() 函数

from conda_subprocess import call
call("python --version", prefix_name="py312")
>>> Python 3.12.1
>>> 0

还有 run() 函数

from conda_subprocess import run
run("python --version", prefix_name="py312")
>>> Python 3.12.1
>>> CompletedProcess(args=['/bin/bash', '/var/folders/9p/rztyv06d0xv4h26cyv8nrw3m0000gq/T/tmpm8b8i0r3'], returncode=0)

CompletedProcess 参数所示,conda_subprocess 在内部将命令写入临时文件以执行,以确保正确激活 conda 环境。

对于交互式通信,conda_subprocess 实现了 Popen 接口

from subprocess import PIPE
from conda_subprocess import Popen
process = Popen(["python", "--version"], stdout=PIPE, prefix_name="py312")
process.communicate()
>>> (b'Python 3.12.1\n', None)

装饰器

类似于 subprocess 接口,conda_subprocess 还引入了 @conda 装饰器,以在单独的 conda 环境中执行 Python 函数

from conda_subprocess.decorator import conda

@conda(prefix_name="py312")
def add_function(parameter_1, parameter_2):
    return parameter_1 + parameter_2

add_function(parameter_1=1, parameter_2=2)
>>> 3

备注

  • shell 参数和 env 参数在 Popen() 及其所有衍生方法中不受支持。
  • 为了与 Python 3.9 兼容,已删除 pipesize 参数和 process_group 参数。

项目详情


下载文件

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

源分布

conda_subprocess-0.0.5.tar.gz (10.9 kB 查看哈希值)

上传时间

构建分布

conda_subprocess-0.0.5-py3-none-any.whl (16.0 kB 查看哈希值)

上传时间 Python 3

支持者