Skip to main content

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 the env parameter are not supported in Popen() and all derived methods.
  • The pipesize parameter and the process_group parameter were removed for compatibility with python 3.9.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

conda_subprocess-0.0.1.tar.gz (7.2 kB view details)

Uploaded Source

Built Distribution

conda_subprocess-0.0.1-py3-none-any.whl (14.3 kB view details)

Uploaded Python 3

File details

Details for the file conda_subprocess-0.0.1.tar.gz.

File metadata

  • Download URL: conda_subprocess-0.0.1.tar.gz
  • Upload date:
  • Size: 7.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for conda_subprocess-0.0.1.tar.gz
Algorithm Hash digest
SHA256 f8a3a811f45b13aecfea054ca6c11c4c8e4a751be44bcc823537889c749a8ec9
MD5 a527803797c5f97ee3b4c67e68ace84a
BLAKE2b-256 2e6b4dd68c4d4159ffee54d2fa098ebe7e22b699bb72644d8e0bee6cea2c8819

See more details on using hashes here.

File details

Details for the file conda_subprocess-0.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for conda_subprocess-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7f2a5c2d8e7aaef4e9dc8ba8389bba7acc8da3fff78cf476bb00f37f095d7d8c
MD5 f00dc1ae6a65ea4e9adb7e8e93671d27
BLAKE2b-256 b3c496ad5fee1feddac9d4c0c2834f6ef8fb9d14d532f09640afd10754975c3d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page