Correction de l'erreur "ValueError: numpy.ndarray size changed, may indicate binary incompatibility. Expected 88 from C header, got 80 from PyObject"

La librairie NumPy est très populaire dans le langage Python. Elle ajoute des fonctions mathématiques avancées au langage. Elle est donc très utilisée. Si vous utilisez un framework ou une librairie à vocation scientifique, il y a de grandes chances que vous ayez la librairie NumPy déjà installée sur votre ordinateur. C'est par exemple le cas d'OpenCV, de Pandas ou encore de TensorFlow. Si, lorsque vous utilisez cette librairie, vous rencontrez le message d'erreur "ValueError: numpy.ndarray size changed", il s'agit d'un cas particulier lié à la version 1.20 de la librairie.

La version 1.20 de NumPy est particulière, elle effectue un changement dans l'API interne de la librairie, développée en langage C. Dans certains cas, PIP, le gestionnaire de paquets du langage Python, installe la version 1.20 de la librairie, mais ne met pas à jour l'API interne, qui a changé elle aussi de version. C'est cette différence de versions qui provoque l'affichage du message d'erreur "ValueError: numpy.ndarray size changed".

Pour résoudre le problème, il existe heureusement une solution simple. Il suffit de désinstaller puis réinstaller NumPy. L'API C sera alors installée dans sa nouvelle version, et le message d'erreur ne sera plus affiché. Pour effectuer cette manipulation, utilisez la commande de désinstallation "pip uninstall" puis la commande d'installation "pip install".

pip uninstall numpy
pip install numpy

Une autre solution possible consiste à forcer la mise à jour de NumPy. Pour cela, il faut ajouter l'argument "--upgrade" à la commande d'installation de la librairie.

pip install --upgrade numpy

Python