Невозможно импортировать "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')

Это решило мою проблему.

Другие вопросы по тегам