[Sy] Python で 「AttributeError」となって module がうまく動かない場合の原因と対処
2018/01/21
Python で「 AttributeError: module ‘xxx’ has no attribute ‘new’ 」とエラーになる時の原因と対処についてです。
エラーの内容
前回の記事のコードを試していると、エラーが発生。
⇒ [Sy] HMAC-SHA-256 を計算するサンプル(Python)最初 hmac.py
というファイル名で保存してました。コードとエラーはこのような感じです。
(hmac.py)
import hashlib
import hmac
secretKey = b'secret key'
payload = b'Hello World!'
signature = hmac.new(secretKey, payload, hashlib.sha256).hexdigest()
print(signature)
$ python hmac.py
Traceback (most recent call last):
File "hmac.py", line 2, in <module>
import hmac
File "/Users/utano320/Documents/Develop/hmac.py", line 9, in <module>
signature = hmac.new(secretKey, payload, hashlib.sha256).hexdigest()
AttributeError: module 'hmac' has no attribute 'new'
原因&解決方法
原因は、 import しようとしている hmac というモジュール名と、 hmac.py というファイル名が競合してしまって、正しく hmac モジュールが import されていないということでした。
ということなので、解決方法としては hmac.py
というファイル名を hamc_test.py
などに変えればOKでした。
$ mv hmac.py hmac_test.py
$ python hmac_test.py
e3140f6d0e6ba8608551454bce0a6d19268021165da2a9343e8b29f43ab48a3a