Anaconda now requires paid licenses for most institutions. We need a free alternative that actually works for scientific computing.
Why Not Just Use Pip and Venv?
The obvious choice is pip and venv – they’ve been around forever and they’re definitely free and open source. But they have serious limitations for scientific computing:
No Non-Python Dependencies:
If you want to link CUDA, C++, or Fortran code, pip and venv can’t handle it. For GPU computing or any serious numerical work, this is a dealbreaker.
Performance Library Lock-in:
When you do matrix multiplication in NumPy, it doesn’t actually happen in Python (that would be way too slow). Instead, it uses specialized performance libraries: MKL (fastest on Intel CPUs), OpenBLAS (fastest on AMD CPUs), or Accelerate (fastest on Apple Silicon).
With pip and venv, you’re locked into OpenBLAS. On AMD that’s fine, but on Intel or Apple Silicon, your code runs significantly slower than it needs to.
This limitation applies to all the modern pip-based tools too – pipenv, poetry, pip-tools – they’re all Python-only.
The Alternatives: What I Tested
Micromamba
Micromamba was my first choice. It’s minimalistic, fast, and replaces conda with mamba (which should be able to do everything conda can). In principle, it’s great.
The Problem: IDE Support
PyCharm only has native support for conda. You can make micromamba work, but it requires workarounds. When I’m teaching beginners, I can’t spend two hours of the first tutorial session installing workarounds and hacking configurations.
Even VS Code, where most environment managers work natively, needs an additional extension for micromamba. On Windows, it was particularly tricky to set up.
Pixi
Pixi is the new kid on the block. It’s supposed to be even faster than modern conda and has some interesting features:
Advantages:
– Very fast (built on Rust’s rattler solver)
– Per-project environments with built-in lockfiles
– Can define multiple environments per project (GPU vs CPU parallelization)
The Beginner Problem:
Pixi uses per-project environments by default. If you’re taking my Python course with seven lectures that all need the same environment, you have to reinstall that environment seven times. With conda, you install once and reuse it.
Yes, pixi has a global state option, but it’s more difficult to configure than conda. For beginners right now, it’s not ideal. It also doesn’t work natively with PyCharm yet.
Miniforge: The Winner
Miniforge gives you the best of both worlds – both conda and mamba for maximum flexibility.
Why It Works:
– Completely free (uses conda-forge channels)
– Works with PyCharm and VS Code natively
– Operates exactly like Anaconda did
– Easy installation and configuration
– If you’re used to Anaconda, you can literally just uninstall it, install Miniforge, and keep going
One Important Note:
Make sure you’re connecting to conda-forge channels when installing packages. As long as you use conda-forge, everything is free. If you accidentally connect to Anaconda’s default channels, that will cost the $600 per year. I’ll show you how to set this up properly in an upcoming video.
Complete Comparison Table
Here’s a detailed comparison of all the package managers I tested:
| Feature | Anaconda / Miniconda | pip + venv | micromamba | Miniforge | pixi |
|---|---|---|---|---|---|
| Package Source | Any conda channel | PyPI only | Any conda channel (defaults to conda-forge) |
Any conda channel (defaults to conda-forge) |
conda-forge primary |
| Commercial Licensing | Tool free but ‘defaults’ channel requires license | ✓ Free | ✓ Free (uses conda-forge) |
✓ Free (uses conda-forge) |
✓ Free (uses conda-forge) |
| Base Environment | ✗ Yes (licensing issue with defaults) |
✓ No (uses system Python) |
✓ No (standalone binary) |
⚠ Yes (but no licensing issue) |
✓ No (per-project) |
| Non-Python Dependencies | ✓ Yes (CUDA/C++/Fortran) | ✗ No | ✓ Yes (CUDA/C++/Fortran) | ✓ Yes (CUDA/C++/Fortran) | ✓ Yes (CUDA/C++/Fortran) |
| BLAS Control (numpy performance) |
✓ Yes (MKL/OpenBLAS/Accelerate) |
✗ No (locked to OpenBLAS) |
✓ Yes (MKL/OpenBLAS/Accelerate) |
✓ Yes (MKL/OpenBLAS/Accelerate) |
✓ Yes (MKL/OpenBLAS/Accelerate) |
| Installation Size | ~400-500 MB | ~Few MB | ~13 MB | ~100 MB | ~10-15 MB |
| Solver Speed | ✓ Fast (libmamba since v23.10) |
Standard (pip resolver) |
✓ Fast (libmamba C++) |
✓ Fast (libmamba C++) |
✓✓ Very Fast (rattler Rust) |
| Parallel Downloads | ✓ Yes (since v23.10) |
✗ No | ✓ Yes | ✓ Yes | ✓ Yes |
| Lockfiles (reproducibility) |
⚠ No (conda-lock available separately) |
⚠ No (requirements.txt not true lockfile) |
⚠ No (conda-lock available separately) |
⚠ No (conda-lock available separately) |
✓ Yes (pixi.lock built-in) |
| Docker/CI Friendly | ✗ Poor (too large) |
✓ Excellent | ✓ Excellent (~13MB) |
⚠ Okay (~100MB) |
✓ Excellent |
| PyCharm Support | ✓ Native | ✓ Native | ⚠ Workaround only | ✓ Native | ⚠ Workaround only |
| VS Code Support | ✓ Native | ✓ Native | ⚠ Extension available | ✓ Native | ✓ Native |
| Best For | — | Pure Python / web development |
Docker / CI / air-gapped systems |
Conda users wanting free alternative |
Modern projects / reproducible workflows |
My Recommendation: Stick with Miniforge
For most people transitioning from Anaconda, especially beginners and educators, Miniforge is the clear winner. It has the same simplicity as Anaconda and it’s free to use.
Choose Miniforge if:
– You’re coming from Anaconda and want a drop-in replacement
– You need PyCharm compatibility
– You want something that works out of the box
– You’re teaching Python to beginners
Choose micromamba if:
– You’re comfortable with VS Code
– You need minimal installation size for Docker/CI
– You don’t mind configuring workarounds
Choose pixi if:
– You’re working on modern projects that need reproducible lockfiles
– You want per-project environments
– You’re comfortable with newer, less mature tools
Choose pip + venv if:
– You’re doing pure Python web development
– You don’t need any non-Python dependencies
– You’re not worried about NumPy performance optimization
What’s Next?
This is part one of a three-part series on setting up your Python development environment in 2025:
Part 1: Package Managers (this post) – Watch Video
Part 2: IDE Comparison (JupyterLab Desktop alternatives)
Part 3: Complete setup guide showing how to install and configure everything together (coming soon)
This article is part of our comprehensive guide to Python development environments. Check out Training Scientists for more detailed insights and video tutorials.



