Python provides us with a great mix of user-friendly package management and clean linguistic archetecture. Python at its best can truly live up to the promise of multiplatform design. But every now and then we face issues related to python’s tight integration of language, libraries and tools. This is particularly true when we look at the keywords: importerror: missing required dependencies numpy error.
What is this error?
This dependency error message is somewhat deceptive in its simplicity. The error simply means that the python package runtime isn’t able to load the NumPy module. NumPy is itself a commonly used module that provides extra mathematical functionality to python. We usually see the error come up when a python based program requires suggesting NumPy git repository but can’t find it.
How does this occur?
On the surface of things, the error message is just a standard missing dependency in the python file. The main problem comes from the fact that there’s a number of different reasons why the python file runtime wouldn’t be able to find multiple versions of a NumPy install. The most simple explanation is that NumPy simply wasn’t installed in the first place.
However, it’s more likely that our python environment is looking for packages in the wrong location. Python’s dependency system can become quite complex due to the number of platforms it can run on. We’ll even see multiple python version interpreters on the same system. For example, one linux distribution might come with both python version 2.x and 3.x. On top of that it might even have both 32 and 64 bit binaries. We might even see something like jython, which is a python shell runtime for java. Each environment will look in a different location when resolving a file dependency in our code.
How do I fix it?
We have extra problems with dependencies due to the fact that different package managers handle installations in slightly different ways. For example, the anaconda environment might not see a NumPy module installed by pip or apt. So how do we fix a problem which can come about through so many different conditions? We can begin by pinpointing which python shell runtime is being used. Just use a “-v” flag when initiating python on the command prompt. For example, on many systems you’d simply need to type “python -v” to see information about your python interpreter. This will tell you if you’re using the 2.x or 3.x branch. This is important because python 2 and 3 will store their modules in different locations. You might have a NumPy installation for python 2. But python 3 wouldn’t be able to use it.
Once you’re sure which python runtime you’re using you should do a complete installation of the NumPy library. You can go about this using your native package manager, as an anaconda package, or with pip. But it’s generally best to use pip since you’ll always get a newly compiled version that’s appropriate to your platform. This will ensure that any incompatible binaries are overwritten.
It’s a good idea to try uninstalling NumPy first. This will clean away any cruft from incomplete installations. So to completely remove a non-functional NumPy installation we’d begin by typing “pip uninstall numpy -y”. The -y flag will bypass any yes/no prompts. Then we’d install NumPy by typing “pip install numpy”. At this point, it’s often a good idea to write a quick python script that makes use of the module. So, for example, you could test the NumPy install by using a multiarray numpy extension module. Though just typing import numpy on python’s command prompt should alert you of any problems with the multiarray module or other related functionality.
If the problem still persists then the issue probably comes down to multiple python environments. You should repeat the pip numpy installation process for every python runtime on your system. For example, on debian based platforms you’d typically invoke the python 2.x runtime by typing python2 rather than python. Likewise, you’d type pip2 to use the python 2.x version of pip. So to tie that together, we’d want to type “pip2 install numpy” to install numpy for the python 2 environment. We’d use pip3 to make sure numpy is installed for the python 3 environment. This would entail typing “pip3 install numpy”. At this point, the error should be resolved.