01
Choose the environment boundary before installing JupyterLab
The visible JupyterLab interface is not the research environment. It is a server application that starts kernels, loads packages, reads configuration, and launches external tools. A successful browser launch therefore proves very little about whether the intended Python interpreter or architecture is active.
The common failure pattern is environment mixing:
- System Python is used to launch JupyterLab.
- Homebrew Python supplies some packages.
pip installs another package set.
conda supplies a different interpreter.
- An old kernelspec still points to a deleted or Intel-based environment.
This can produce a notebook that opens normally but fails when importing NumPy, a plotting library, a domain package, or an external command-line tool. The hidden cost is not the installation command. It is the time spent debugging an environment whose ownership is unclear.
| Route |
Best use |
Main boundary |
Editorial score |
conda or conda-forge |
Mixed Python and native scientific dependencies |
Keep the environment and kernelspec together |
5/5 |
pip in a dedicated virtual environment |
Mostly Python-only projects with a strong lockfile |
Do not install into system Python |
4/5 |
| Homebrew |
Developer tools and system-level command-line utilities |
Do not treat it as the project environment |
3/5 |
| Desktop application |
Quick personal exploration |
Less transparent for team delivery and automation |
2/5 |
| Docker |
Projects already designed for container deployment |
Requires a container workflow and data-mount policy |
3/5 |
The official JupyterLab documentation confirms that these routes are available, but it does not decide which route is correct for a particular study. We make that choice from the dependency list, the lab’s delivery requirements, and whether native arm64 builds exist for the required packages.
JupyterLab on an M-series Mac is usually better installed with pip or conda?
Use conda-forge when the project includes compiled scientific libraries, mixed native dependencies, or a team that needs environment export. Use pip inside a dedicated virtual environment when the project is primarily Python and already has a tested requirements or lock file. Do not combine both package managers casually inside the same environment.
Homebrew remains useful for tools such as Git, compilers, and command-line utilities. Its official installation documentation and FAQ describe the supported macOS setup and package-management boundaries; they do not turn Homebrew into a replacement for project-level dependency isolation. See the Homebrew installation documentation before adding system tools.