
Installing packages directly from Jupyter Notebooks
Jupyter magic commands are really efficient in accomplishing different tasks, but you may sometimes find it difficult to achieve installing new packages during a Jupyter session (and it will happen often since you are using different environments based on conda or env). As Jake VanderPlas explained in his blog post Installing Python Packages from a Jupyter Notebook (https://jakevdp.github.io/blog/2017/12/05/installing-python-packages-from-jupyter/), it is a matter of fact that Jupyter kernels are different from the shell you started from, that is, you may be upgrading a wrong environment when you issue magic commands such as !pip install numpy or !conda install --yes numpy.
The correct approach for installing, let's say, NumPy, using pip under a Jupyter Notebook is by creating a cell like this:
In: import sys
!"{sys.executable}" -m pip install numpy
Instead, if you want to use conda, this is the cell you have to create:
In: import sys
!conda install --yes --prefix "{sys.prefix}" numpy
Just replace numpy with any package you would like to install and then run, and the installation is guaranteed to succeed.