在不同的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 查看哈希值)
关闭
conda_subprocess-0.0.5.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3e7da7604797ddef8cf773f97f0e9815b23d5718decb759999784d15c80e6dc2 |
|
MD5 | d890a08027a311d06bb1c369e839fc8f |
|
BLAKE2b-256 | 4bd9fa87d9989bb7932ec647be593a580515f90910eb81cfaf122add4119aaf9 |
关闭
conda_subprocess-0.0.5-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2a6e783aff55a7c56d6c3a8e1167a716bdd767eec80ca2464f074f7527c4b848 |
|
MD5 | 58b5e75051cfc29aa7c76536e981b906 |
|
BLAKE2b-256 | 4d8340f0c2742ed20e07f73faa7d3840c905a59488100e03d961364011e8ca3a |