GNU/Linux >> Tutoriales Linux >  >> Linux

error de Python AttributeError:el objeto 'módulo' no tiene atributo 'sha1'

El problema apareció después de instalar un barril de cerveza que luego hizo una limpieza regular. Luego, node-gyp no pudo reconstruir algunos paquetes para mi aplicación de nodo. Reinstalar Python 2 me ayudó.

En MacOS:

brew reinstall [email protected]

Causa del error

Cuando tienes un archivo en el mismo directorio desde donde ejecutó la secuencia de comandos (o incluso si se está ejecutando la secuencia de comandos) nombrado igual que un módulo integrado , se carga en lugar del módulo integrado.

Reparar

Para solucionarlo, simplemente necesita cambiar el nombre de su archivo hashlib.py a otra cosa y luego el intérprete de Python cargará el módulo incorporado. También es posible que deba eliminar el módulo compilado hashlib.pyc que se encuentra en el mismo directorio que su hashlib.py , de lo contrario, Python seguirá cargando ese módulo.

Explicación

Cuando import un módulo, digamos import hashlib , Python busca el módulo hashlib.py en las siguientes ubicaciones y en el siguiente orden:

  1. directorio que contiene el script que se está ejecutando
  2. módulos integrados
  3. directorio que contiene el script de entrada (o el directorio actual cuando no se especifica ningún archivo)
  4. PYTHONPATH variable de entorno (puede contener una lista de directorios)
  5. ruta predeterminada dependiente de la instalación

Eso significa que si ejecuta el script hashlib.py que contiene la sentencia import hashlib , Python importa el script en sí mismo en lugar del módulo integrado hashlib . De hecho, Python compila su secuencia de comandos en el archivo hashlib.pyc en el mismo directorio e importa ese script compilado, por lo que si simplemente cambia el nombre de hashlib.py y deja haslib.pyc donde está, seguirá cargándolo. Por lo tanto, también debe eliminar el haslib.pyc .


Linux
  1. Typeset -a ¿Está dando un error en el script?

  2. Importación del módulo Python desde Bash

  3. Ejecutar secuencia de comandos de Python a través de crontab

  4. 'Fin de archivo inesperado' y 'error al importar definición de función' error al ejecutar shellscript usando qsub

  5. falta el módulo python bz2

Cómo ejecutar un script de Python en PHP

Ejecutar un script de Python desde PHP

Generar error en un script Bash

La ejecución del script de Python a través de systemd no puede cargar el módulo

usando pip3:el módulo importlib._bootstrap no tiene atributo SourceFileLoader

Error de LUKS durante el arranque