Escaping from Anaconda's Stranglehold on macOS
An economics professor’s guide to “escaping” Anaconda on macOS has reignited long‑standing frustrations with Python’s packaging and environment tooling, especially for beginners. Commenters argue over whether students should be shielded from the command line or required to learn shells, filesystems, and virtual environments early, and whether GUI‑centric workarounds just postpone essential skills. Others focus on Anaconda’s licensing and aggressive defaults, recommending alternatives such as conda‑forge/Miniforge, pyenv, uv, Nix, or Docker and debating what a sane, reproducible Python setup should look like in 2024.
Anaconda on macOS and shell configuration
- Many commenters note Anaconda on macOS aggressively modifies shell startup files (
.zshrc, PATH, even shadowing tools likelipo) and auto‑activates the base environment. - This confuses beginners who later install “official” Python and find that
python3still runs Anaconda’s version. - The article’s GUI-based workaround (renaming
.zshrcin Finder) is seen by some as elegant and reversible for non‑CLI users; others call it overcomplicated and “insane” compared to a one‑line shell command or simply editing out the conda init line. - Some stress that auto‑activation can be disabled (
conda config --set auto_activate_base false), but beginners rarely know this.
Licensing and institutional backlash
- Anaconda’s newer licensing terms for institutions are widely criticized as ambiguous and “dark pattern”–like, especially around universities with >200 employees.
- Some organizations report being approached in a hostile, “you’re in legal trouble” way and are now purging Anaconda despite liking the product.
- Others note that Miniconda/Miniforge with conda‑forge channels avoid most licensing issues.
Virtual environments vs direct installs
- Strong disagreement over the article’s line that avoiding virtual environments is a benefit.
- Many argue beginners are precisely the ones who must learn venv/conda, otherwise they break global installs or can’t manage multiple projects.
- Others counter that venvs, pyenv vs virtualenv vs conda, etc. are already a confusing mess; for novices doing a single course, direct installs into a dedicated user‑level Python may be simpler.
Teaching beginners: CLI, GUIs, and scope
- Split between “teach shell, filesystem, PATH from day one” and “don’t front‑load everything; let students focus on Python and hide infrastructure via GUIs/IDEs.”
- Some report non‑CS students can grasp basic CLI in under an hour; others say many modern students lack even file/folder concepts and are intimidated by terminals.
- Suggested teaching environments include: VS Code with built‑in venv support, IDLE, Docker/containers, hosted web notebooks, or institutionally managed Nix-based setups.
Alternatives and broader ecosystem
- Alternatives mentioned: Miniforge/conda‑forge, pixi, MacPorts, Homebrew +
pip/venv, pyenv + poetry, uv, mise, Nix/Guix, Docker/Podman. - Conda is defended as a cross‑platform, multi‑language package manager that handles C/Fortran/ABI issues well, especially for scientific computing, though some find it slow or fragile.
- Many comments broaden into frustration that Python packaging/environments remain notoriously complex compared to R, MATLAB, or Julia, with references to the “XKCD Python environment” comic and calls for a more unified, Rust‑/Cargo‑like model.