78
votes

Comment corrigez-vous "runtimeError: package ne réussit pas à passer un contrôle de cohérence" pour numpy et pandas?

C'est l'erreur que je reçois et, pour autant que je sache, il n'y a rien d'utile sur le lien d'erreur pour résoudre ce problème.

RuntimeError: l'installation actuelle de Numpy ( '...\\venv\\lib\\site-packages\\numpy\\__init__.py' ) échoue à passer une vérification de cohérence en raison d'un bogue dans l'exécution de Windows.

Consultez ce numéro pour plus d'informations: https://developercommunity.visualstudio.com/content/problem/1207405/fmod-after-an-update-to-windows-2004-is-causing-a.html

J'ai essayé plusieurs versions de Python (3.8.6 et 3.9.0) et de numpy et pandas. J'utilise actuellement PyCharm pour faire tout cela.


0 commentaires

8 Réponses :


23
votes

Installez simplement numpy==1.19.3 J'utilise python 3.9


0 commentaires

115
votes

Cette erreur se produit lors de l'utilisation de python3.9 et numpy1.19.4 Ainsi, la désinstallation de numpy1.19.4 et l'installation de la 1.19.3 fonctionneront.


6 commentaires

Comment le rétrograder en utilisant pip?


HaShaidaMuhammad pip install numpy == 1.19.3


Dammit numpy , testez avant de libérer s'il vous plaît. Ce n'est pas une version bêta


J'utilise Python 3.7.5 et j'ai aussi cette erreur (numpy 1.19.4). La rétrogradation de numpy à 1.19.3 empêche en effet l'erreur de se produire.


@NoName: Nous avons fait des tests, et le bogue est dans Windows lui-même. 1.19.3 était une tentative de résoudre ce problème en utilisant une version différente d'OpenBLAS qui contournait le problème, mais cette version ne fonctionnait pas correctement sous Linux.


J'ai eu le même problème avec python 3.8 et 'pip install numpy == 1.19.3 --upgrade' l'a résolu! Merci !



9
votes

Revenir à numpy 1.19.3 a fonctionné pour moi sur python 3.8.6


0 commentaires

32
votes

J'utilise Python 3.7, de toute façon la même solution suggérée ici m'a aidé.

pip install numpy==1.19.3

En fait, le lien informé https://developercommunity.visualstudio.com/content/problem/1207405/fmod-after-an-update-to-windows-2004-is-causing-a.html montre la solution donnée. Cela semble être un bogue dans Visual Studio, qui reste non résolu à ce jour.


0 commentaires

11
votes

Selon la discussion sur le lien que vous avez fourni, un développeur numpy a répondu:

NumPy a publié un correctif 1.19.3 pour contourner ce problème. Le correctif a cassé quelque chose d'autre sous Linux, nous avons donc dû annuler le correctif de la version 1.19.4, mais vous pouvez toujours installer le 1.19.3 via pip install numpy == 1.19.3.

Donc, si vous avez besoin d'exigences qui fonctionnent à la fois pour Linux et Windows, vous devrez utiliser PEP508:

numpy==1.19.3; platform_system == "Windows"
numpy>=1.19.4; platform_system == "linux"


1 commentaires

Peut probablement faire numpy>=1.19.4 sur Linux



7
votes

C'est un bogue de numpy 1.19.4 qui échoue avec toutes les versions de python. Utilisez la version précédente pour résoudre le problème, donc par terminal:

pip install numpy==1.19.3


0 commentaires

4
votes

Pourquoi personne n'a publié la différence entre 1.19.3 et 1.19.4.

Le code d'initialisation numpy problématique est:

def _win_os_check():
    """
    Quick Sanity check for Windows OS: look for fmod bug issue 16744.
    """
    try:
        a = arange(13 * 13, dtype= float64).reshape(13, 13)
        a = a % 17  # calls fmod
        linalg.eig(a)
    except Exception:
        msg = ("The current Numpy installation ({!r}) fails to "
                "pass a sanity check due to a bug in the windows runtime. "
                "See this issue for more information: "
                "https://developercommunity.visualstudio.com/content/problem/1207405/fmod-after-an-update-to-windows-2004-is-causing-a.html")
        raise RuntimeError(msg.format(__file__)) from None

if sys.platform == "win32" and sys.maxsize > 2**32:
    _win_os_check()

del _win_os_check

Cette section de code n'existe pas dans 1.19.3; c'est la seule différence.


1 commentaires

Il existe une autre différence plus importante entre les roues 1.19.3 et 1.19.4 installées par pip - la version d'OpenBLAS avec laquelle elles sont construites. Si vous supprimez ce code de numpy 1.19.4, au lieu de numpy ne pas importer, vous obtiendrez un numpy qui produit des résultats incorrects et / ou se bloque de manière aléatoire. Le correctif correct est de passer à la version 1.19.3, qui contient une version "sûre" d'OpenBLAS.



5
votes

La solution de contournement est fournie dans le lien mentionné en question.

Le développeur Mattip mentionne ci-dessous dans la solution de contournement suggérée par lui:

  1. Désinstallez numpy. (Il s'agit probablement de la 1.19.4)
  2. pip install numpy == 1.19.3

Cela a fonctionné pour moi.

Ma configuration: OS-Win10, Distribution Anaconda, python = 3.7


0 commentaires