GNU/Linux >> Linux Esercitazione >  >> Linux

errore python AttributeError:l'oggetto 'module' non ha l'attributo 'sha1'

Il problema è apparso dopo l'installazione di una botte di birra che ha effettuato una pulizia regolare dopo. Quindi node-gyp non riusciva a ricostruire alcuni pacchetti per la mia applicazione node. La reinstallazione di Python 2 mi ha aiutato.

Su macos:

brew reinstall [email protected]

Causa dell'errore

Quando hai un file nella stessa directory da dove hai eseguito lo script (o anche se è lo script stesso che viene eseguito) con lo stesso nome di un modulo integrato , viene caricato al posto del modulo integrato.

Correggi

Per risolverlo devi semplicemente rinominare il tuo file hashlib.py a qualcos'altro e quindi l'interprete Python caricherà il modulo integrato. Potrebbe anche essere necessario eliminare il modulo compilato hashlib.pyc che si trova nella stessa directory del tuo hashlib.py , altrimenti Python caricherà ancora quel modulo.

Spiegazione

Quando fai import un modulo, diciamo import hashlib , Python cerca il modulo hashlib.py nelle seguenti posizioni e nel seguente ordine:

  1. directory contenente lo script in esecuzione
  2. moduli integrati
  3. directory contenente lo script di input (o la directory corrente quando non è specificato alcun file)
  4. PYTHONPATH variabile d'ambiente (può contenere un elenco di directory)
  5. percorso predefinito dipendente dall'installazione

Ciò significa che se esegui lo script hashlib.py che contiene l'istruzione import hashlib , Python importa lo script stesso invece del modulo integrato hashlib . Infatti, Python compila il tuo script nel file hashlib.pyc nella stessa directory e importa quello script compilato, quindi se rinomini semplicemente hashlib.py e lasciare haslib.pyc dov'è, lo starà ancora caricando. Pertanto è necessario eliminare anche il haslib.pyc .


Linux
  1. Errore di installazione di Python – Spiacenti:UnicodeError:gli escape non supportati non possono caricare il modulo unicodedata [Risolto]

  2. Digitare -a sta dando un errore nello script?

  3. Importazione del modulo Python da Bash

  4. Esegui lo script Python tramite crontab

  5. Errore "Fine imprevista del file" e "Errore durante l'importazione della definizione della funzione" durante l'esecuzione di shellscript utilizzando qsub

Come eseguire uno script Python in PHP

Esecuzione di uno script Python da PHP

Errore di importazione nessun modulo denominato zlib (brew installato python)

L'esecuzione dello script Python tramite systemd non riesce a caricare il modulo

Errore Pip:l'oggetto 'module' non ha l'attributo 'Cryptography_HAS_SSL_ST'

Errore LUKS durante l'avvio