Невозможно импортировать "hashlib"
Я пытаюсь зашифровать строку в sha1, и я получаю сообщение об ошибке от сервера:
"No Module Named hashlib"
Используя следующий код:
import hashlib
encrypted = hashlib.sha1(string)
encrypted = encrypted.digest()
Я буду признателен за любую помощь,
Спасибо, Ги Дор
5 ответов
Вы, вероятно, получили версию Python < 2.5. Использовать sha
модуль вместо
Вот различия:
>>> import sha
>>> s = sha.new()
>>> s.update('hello')
>>> s.digest()
'\xaa\xf4\xc6\x1d\xdc\xc5\xe8\xa2\xda\xbe\xde\x0f;H,\xd9\xae\xa9CM'
против
>>> import hashlib
>>> hashlib.sha1('hello').digest()
'\xaa\xf4\xc6\x1d\xdc\xc5\xe8\xa2\xda\xbe\xde\x0f;H,\xd9\xae\xa9CM'
Кроме того, FWIW и для других, заканчивающихся здесь, но для hashlib.md5():
import md5
m = md5.new()
...
hashlib - это новый модуль / библиотека в python 2.5, на сервере, безусловно, работает python 2.4 или более ранняя версия
На некоторых производных Python, таких как Jython, используйте следующее:
import _hashlib
h = _hashlib()
md5Res = h.openssl_md5("helloYou").hexdigest()
print(md5Res)
Самый простой способ найти такие ошибки, связанные с не найденными модулями, это проверить их путь. Я полностью могу запустить код API python facebook ads через консоль, но когда я пробовал этот код через C#, я получил несколько ошибок, связанных с путями.
Чуть ниже данного оператора перед оператором импорта указывается путь к файлу hashlib.py.
импорт системы
sys.path.append('C:\Python34\Lib')
Это решило мою проблему.