

If conda tells you the package you want doesn't exist, then use pip (or try conda-forge, which has more packages available than the default conda channel). If you installed Python using Anaconda or Miniconda, then use conda to install Python packages. If you already have a Python installation that you're using, then the choice of which to use is easy:

This post will focus on two approaches to installing Python packages: pip and conda. Third, I'll talk about some ideas the community might consider to help smooth-over these issues, including some changes that the Jupyter, Pip, and Conda developers might consider to ease the cognitive load on users. Second, I'll dive into some of the background of exactly what the Jupyter notebook abstraction is doing, how it interacts with the complexities of the operating system, and how you can think about where the "leaks" are, and thus better understand what's happening when things stop working. In the wake of several discussions on this topic with colleagues, some online ( exhibit A, exhibit B) and some off, I decided to treat this issue in depth here.įirst, I'll provide a quick, bare-bones answer to the general question, how can I install a Python package so it works with my jupyter notebook, using pip and/or conda?. In other words, the Jupyter notebook, like all abstractions, is leaky. In the simplest contexts this issue does not arise, but when it does, debugging the problem requires knowledge of the intricacies of the operating system, the intricacies of Python package installation, and the intricacies of Jupyter itself. etc.).įundamentally the problem is usually rooted in the fact that the Jupyter kernels are disconnected from Jupyter's shell in other words, the installer points to a different Python version than is being used in the notebook. this, that, here, there, another, this one, that one, and this. This issue is a perrennial source of StackOverflow questions (e.g. I installed package X and now I can't import it in the notebook.

I most often see this manifest itself with the following issue: In software, it's said that all abstractions are leaky, and this is true for the Jupyter notebook as it is for any other software.
