我需要你的帮助,
如何纠正错误AttributeError:“模块”对象没有属性“sha1 1”,
当我启动命令示例导入随机或导入hashlib时,就会得到这样的结果
root@thinkad:~# python
Python 2.7.3 (default, Jan 2 2013, 13:56:14)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import random
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/random.py", line 49, in <module>
import hashlib as _hashlib
File "hashlib.py", line 3, in <module>
hasher = hashlib.sha1()
AttributeError: 'module' object has no attribute 'sha1'
>>> import math
>>> import hashlib
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "hashlib.py", line 3, in <module>
hasher = hashlib.sha1()
AttributeError: 'module' object has no attribute 'sha1'
>>> 发布于 2014-03-02 20:50:07
看起来,您有一个名为hashlib.py的文件,它妨碍了解释器查找标准的hashlib模块。
发布于 2019-11-25 20:52:25
问题出现后,安装了一些啤酒桶,做了一些定期清理后。然后,node未能为我的节点应用程序重新构建一些包。重新安装python 2帮助了我。
在macos上:
brew reinstall python@2发布于 2016-05-27 12:58:17
产生错误的原因
当您的文件位于您执行脚本的同一个目录中(或者即使它是正在运行的脚本本身)时,的名称与内置模块相同,它将被加载,而不是内置模块。
修复
要修复它,只需将文件hashlib.py重命名为其他内容,然后Python解释器将加载内置模块。您还可能需要删除与您的hashlib.pyc位于同一个目录中的已编译模块hashlib.py,否则hashlib.py仍将加载该模块。
解释
当您import一个模块,比方说import hashlib时,Python在以下地点和顺序如下中查找模块hashlib.py
PYTHONPATH环境变量(可能包含目录列表)这意味着如果您执行包含import hashlib语句的脚本import hashlib,Python将导入脚本本身,而不是内置模块hashlib。实际上,Python会将脚本编译到同一个目录中的文件hashlib.pyc中,并导入编译后的脚本,因此,如果您只是重命名hashlib.py并将haslib.pyc保留在原来的位置,它仍然会加载它。因此,您还需要删除haslib.pyc。
https://stackoverflow.com/questions/22133167
复制相似问题