модуль 'hma c' не имеет атрибута 'new' - PullRequest
0 голосов
/ 03 марта 2020

Python версия 3.7.3

Я использую модуль HMA C. Когда я пытаюсь запустить этот код

digest = hmac.new(s.decode("base64"), a, digestmod=hashlib.sha3_256).digest()

Модуль hma c также имеет функцию .digest. когда я запускаю .new или .digest, я получаю эту ошибку:

digest = hma c .new (s.decode ("base64"), a,

digestmod = hashlib.sha3_256) .digest ()

AttributeError: модуль 'hma c' не имеет атрибута 'new'

Когда я запускаю:

pip install hmac 

Я также получаю эту ошибку:

ERROR: Command errored out with exit status 1:
     command: /Users/empirestrikesback/PythonProjects/practice/aPI/envAPI/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/7v/cp_nrj9x4w13179t2t0h61cm0000gn/T/pip-install-kdd8dbs1/hashlib/setup.py'"'"'; __file__='"'"'/private/var/folders/7v/cp_nrj9x4w13179t2t0h61cm0000gn/T/pip-install-kdd8dbs1/hashlib/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /private/var/folders/7v/cp_nrj9x4w13179t2t0h61cm0000gn/T/pip-install-kdd8dbs1/hashlib/pip-egg-info
         cwd: /private/var/folders/7v/cp_nrj9x4w13179t2t0h61cm0000gn/T/pip-install-kdd8dbs1/hashlib/
    Complete output (22 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/Users/empirestrikesback/PythonProjects/practice/aPI/envAPI/lib/python3.7/site-packages/setuptools/__init__.py", line 18, in <module>
        import setuptools.version
      File "/Users/empirestrikesback/PythonProjects/practice/aPI/envAPI/lib/python3.7/site-packages/setuptools/version.py", line 1, in <module>
        import pkg_resources
      File "/Users/empirestrikesback/PythonProjects/practice/aPI/envAPI/lib/python3.7/site-packages/pkg_resources/__init__.py", line 36, in <module>
        import email.parser
      File "/Users/empirestrikesback/anaconda3/lib/python3.7/email/parser.py", line 12, in <module>
        from email.feedparser import FeedParser, BytesFeedParser
      File "/Users/empirestrikesback/anaconda3/lib/python3.7/email/feedparser.py", line 27, in <module>
        from email._policybase import compat32
      File "/Users/empirestrikesback/anaconda3/lib/python3.7/email/_policybase.py", line 9, in <module>
        from email.utils import _has_surrogates
      File "/Users/empirestrikesback/anaconda3/lib/python3.7/email/utils.py", line 28, in <module>
        import random
      File "/Users/empirestrikesback/anaconda3/lib/python3.7/random.py", line 46, in <module>
        from hashlib import sha512 as _sha512
      File "/private/var/folders/7v/cp_nrj9x4w13179t2t0h61cm0000gn/T/pip-install-kdd8dbs1/hashlib/hashlib.py", line 80
        raise ValueError, "unsupported hash type"
                        ^
    SyntaxError: invalid syntax
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

Я предполагаю, что по какой-то причине модуль не распознается. Я намерен запустить функцию HMA C с секретным сообщением, используя SHA256.

1 Ответ

0 голосов
/ 03 марта 2020

Судя по комментариям, вы нашли проблему. Вы создали файл в своем локальном каталоге с именем hma c .py. В вашем другом скрипте, когда вы вызываете import hmac python, вы найдете hma c .py в вашем локальном каталоге, а не тот, что в каталоге lib вашей python установки.

Это означает, что вы на самом деле не загружаете библиотеку python hma c, а вместо этого загружаете свой собственный скрипт hma c .py, у которого нет нового или дайджест-метода.

Урок слышит не называйте ваши собственные файлы с именами, которые могут конфликтовать с питонами или модулями сторонних разработчиков, если вы специально не пытаетесь реализовать свою собственную версию модуля.

...