GNU/Linux >> Tutoriels Linux >  >> Linux

erreur python AttributeError:l'objet 'module' n'a pas d'attribut 'sha1'

Le problème est apparu après l'installation d'un fût de brassage qui a fait un nettoyage régulier après. Ensuite, node-gyp ne parvenait pas à reconstruire certains packages pour mon application de nœud. La réinstallation de python 2 m'a aidé.

Sur mac :

brew reinstall [email protected]

Cause de l'erreur

Lorsque vous avez un fichier dans le même répertoire d'où vous avez exécuté le script (ou même si c'est le script en cours d'exécution lui-même) nommé de la même manière qu'un module intégré , il est chargé à la place du module intégré.

Réparer

Pour y remédier il vous suffit de renommer votre fichier hashlib.py à autre chose, puis l'interpréteur Python chargera le module intégré. Vous devrez peut-être également supprimer le module compilé hashlib.pyc qui se trouve dans le même répertoire que votre hashlib.py , sinon Python chargera toujours ce module.

Explication

Quand tu import un module, disons import hashlib , Python recherche le module hashlib.py aux emplacements suivants et dans l'ordre suivant :

  1. répertoire contenant le script en cours d'exécution
  2. modules intégrés
  3. répertoire contenant le script d'entrée (ou le répertoire courant si aucun fichier n'est spécifié)
  4. PYTHONPATH variable d'environnement (peut contenir une liste de répertoires)
  5. chemin par défaut dépendant de l'installation

Cela signifie que si vous exécutez le script hashlib.py qui contient l'instruction import hashlib , Python importe le script lui-même au lieu du module intégré hashlib . En fait, Python compile votre script dans le fichier hashlib.pyc dans le même répertoire et importe ce script compilé, donc si vous renommez simplement hashlib.py et laissez haslib.pyc où il se trouve, il le chargera toujours. Par conséquent, vous devez également supprimer le haslib.pyc .


Linux
  1. Erreur d'installation Python - Désolé :UnicodeError :les échappements non pris en charge ne peuvent pas charger le module unicodedata [Résolu]

  2. ModuleNotFoundError :Aucun module nommé "IPython" [Réparer]

  3. Impossible de compiler Python.h - Erreur d'installation de Websockify

  4. Importation du module Python depuis Bash

  5. Exécuter le script Python via crontab

Comment exécuter un script Python en PHP

Exécuter un script Python à partir de PHP

Erreur d'importation aucun module nommé zlib (brew python installé)

L'exécution du script Python via systemd ne parvient pas à charger le module

Erreur Pip :l'objet 'module' n'a pas d'attribut 'Cryptography_HAS_SSL_ST'

Erreur LUKS lors du démarrage