Working with Environments¶
Virtual environments ensure that your code and the dependencies are installed in a locally isolated place, such that the code is reproducible (for instance, when filing bug reports) and the correct versions of dependencies are installed every time.
Environment solutions by different languages¶
Different languages offer different solutions for virtual environment management, including standard tools, third-party tools, and environment configuration/metadata format.
- Python
- venv: the barebones implementation for a virtual environment, included in python's standard library
- virtualenv: Virtual Python Environment builder
- tox: virtualenv management and test automation command line tool
- nox: command-line tool that automates testing in multiple Python environments
- Pipenv: Python dev workflow for humans
- uv: an extremely fast Python package and project manager
- conda: powerful command line tool for package and environment management
- Several Python build-backends offer frontend utilities and dependency management options:
- Julia
- Pkg: Julia's builtin package and environment manager
- R
- Rust
- Cargo: the Rust package manager
TODO: Decide on which env management tool to use