Run a subprocess in a different conda environment.
Project description
conda subprocess
Run a subprocess in a different conda environment.
Example
Create a new conda environment - in this example a conda environment for Python 3.12:
conda create -n py312 python=3.12
Open a python shell in your base environment where conda_subprocess
is installed and execute python --version
in the
py312
environment:
from conda_subprocess import check_output
check_output("python --version", prefix_name="py312")
>>> b'Python 3.12.1\n'
Alternatively, the environment can be specified with the absolute path:
from conda_subprocess import check_output
check_output("python --version", prefix_path="/Users/janssen/mambaforge/envs/py312")
>>> b'Python 3.12.1\n'
As expected the process for the arguments for the subprocess call can also be defined as list:
from conda_subprocess import check_output
check_output(["python", "--version"], prefix_path="/Users/janssen/mambaforge/envs/py312")
>>> b'Python 3.12.1\n'
In addition to the check_output()
function also the check_call()
function is implemented:
from conda_subprocess import check_call
check_call("python --version", prefix_name="py312")
>>> Python 3.12.1
>>> 0
As well as the call()
function:
from conda_subprocess import call
call("python --version", prefix_name="py312")
>>> Python 3.12.1
>>> 0
And the run()
function:
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)
As the CompletedProcess
arguments illustrate conda_subprocess
is internally writing the commands to a temporary file
for execution, to guarantee the conda environment is correctly activated.
For interactive communication conda_subprocess
implements the Popen
interface:
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)
Remarks
- The
shell
parameter and theenv
parameter are not supported inPopen()
and all derived methods. - The
pipesize
parameter and theprocess_group
parameter were removed for compatibility with python 3.9.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for conda_subprocess-0.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7f2a5c2d8e7aaef4e9dc8ba8389bba7acc8da3fff78cf476bb00f37f095d7d8c |
|
MD5 | f00dc1ae6a65ea4e9adb7e8e93671d27 |
|
BLAKE2b-256 | b3c496ad5fee1feddac9d4c0c2834f6ef8fb9d14d532f09640afd10754975c3d |