Skip to main content

Simpler Conda dependency management

Project description

CoMan: Conda Manager

PyPI PyPI - License

A simple CLI for Conda dependency management. CoMan gives you simple commands to manage dependencies in your environment.yml and properly uses lockfiles. Moreover, it manages unique Conda environments per project directory. CoMan mimicks the workflow of Poetry (or any other modern dependency manager), but then for Conda.

Warning: CoMan is work in progress and may not work in every scenario.

CoMan does not require any external dependencies, but it is fastest if you install Mamba (see Caveats).

CoMan manages:

  • environment.yml:
    • add/remove dependencies with version constraints
  • conda-{platform}.lock:
    • (multi-platform) lock files for reproducable environments
  • {envs_dir}/{basename}-{hash}:
    • unique environments for your project in your default environments directory

Installation

There is currently no CoMan conda recipe. CoMan is designed to work independently of Conda, so that it can install and run Conda environments on any system (with Micromamba).

pip install -U coman

# pipx (recommended)
# make sure that pipx uses the python environment in which conda/mamba are installed (the conda base environment) if you have those installed
conda activate base
pipx install -e --python python coman

Latest development version

pip install --user --upgrade git+https://github.com/wietsedv/coman.git#egg=coman

Development

git clone git@github.com:wietsedv/coman.git
cd coman && pip install -e .

Quick start

cd projects/MyProject

# "cm" is short for "coman"; use the command you prefer

# show system and environment status
cm info

# create environment.yml and lock file
cm init

# install the environment
cm install

# add "requests" dependency to environment.yml, the lock file(s) and your installed environment
cm add requests

# show the installed packages
cm show

# run a command (use -- to avoid conflicts between coman and the command you run)
cm run -- python --version

# activate your environment in your current shell (at least works with bash and zsh)
eval $(cm shell)

Caveats

CoMan uses Mamba and Conda from your system if you have those installed. Otherwise, it will fall back to automatically installed Micromamba and Conda-standalone binaries. This means that you can use CoMan without any external dependencies, but CoMan will be fastest if you install Mamba.

Moreover, you may experience problems with the coman run command if you do not have Conda on your system. You should then still be able to use coman shell.

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

coman-0.1a3.tar.gz (13.0 kB view hashes)

Uploaded Source

Built Distribution

coman-0.1a3-py3-none-any.whl (9.4 kB view hashes)

Uploaded Python 3

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