C.W.K.
Stream
Lesson 01 of 05 · published

Why conda Exists Alongside pip

~11 min · conda, overview, python, data-science

Level 0Newbie
0 XP0/55 lessons0/16 achievements
0/80 XP to next level80 XP to go0% complete

conda solves a problem pip can't: installing non-Python binaries. When you conda install pytorch, you get a pre-compiled PyTorch binary matched to your OS, CPU architecture, and CUDA version — no compilation, no Xcode toolchain, no fighting with C extensions. That single feature is why conda dominates data science, machine learning, and scientific computing.

conda is a cross-language, cross-platform package manager and environment manager. It manages Python packages, sure, but also R packages, C/C++ libraries (OpenSSL, BLAS, MKL), CUDA toolkits, compilers, and entire scientific stacks. Conda environments isolate not just Python deps but the whole binary stack underneath them. That's why a conda create with TensorFlow and CUDA gives you a working GPU environment in one command, where the equivalent pip-based setup might require manual CUDA driver installs.

The trade-off: conda is slower than pip for pure-Python packages (the SAT solver is heavy), and it's much slower than uv. Conda also has its own ecosystem split — packages live on channels (defaults, conda-forge, bioconda, etc.) and not every PyPI package is in a channel. The mix-conda-and-pip workflow is real but error-prone.

Use conda when: you're doing data science, ML, or scientific computing; you need GPU stacks (PyTorch + CUDA, TensorFlow + cuDNN); you need non-Python binaries; or you've inherited a project that uses conda. Use uv or pip when: you're doing web/API/CLI Python; your deps are all pure-Python; you want speed.

Code

What conda does that pip can't·text
  pip install pytorch
  → wheels available for SOME platforms; CUDA matching is your problem
  → on macOS Apple Silicon, you get the MPS-only build (no CUDA)
  → if you need a specific CUDA toolkit, you install it separately

  conda install pytorch -c pytorch
  → pre-compiled binary matched to your OS + arch + CUDA
  → cudatoolkit + cudnn pulled in as binary deps automatically
  → on macOS Apple Silicon, automatic MPS build with no fuss

  THAT is why data scientists / ML people use conda. Not Python packages.
  Binary stack management.

External links

Exercise

Pick a tool you actually use that needs binary deps — PyTorch, TensorFlow, OpenCV, GDAL, ffmpeg-python with codec support. Search for it on https://anaconda.org and look at the platform/version matrix. The 'this Just Works' on conda is what justifies conda's existence.

Progress

Progress is local-only — sign in to sync across devices.
Spotted a bug or have feedback on this page?Report an Issue

Comments 0

🔔 Reply notifications (sign in)
Sign inPlease sign in to comment.

No comments yet — be the first.