Нет имени модуля Crypto

#python #python-3.x #pycryptodome

#python #python-3.x #pycryptodome

Вопрос:

Я пытаюсь импортировать Crypto в свою программу на Python, но я получил ошибку. я работаю над Windows. пожалуйста, помогите.

cmd

 C:UsersRaw.306498Desktop>pip3 install --upgrade pycryptodome
Requirement already up-to-date: pycryptodome in c:usersraw.306498appdatalo
calprogramspythonpython37libsite-packages (3.8.0)

C:UsersRaw.306498Desktop>python test.py
Traceback (most recent call last):
  File "test.py", line 2, in <module>
    from Crypto.Cipher import DES
ModuleNotFoundError: No module named 'Crypto'

C:UsersRaw.306498Desktop>
  

test.py

 from Crypto.Util.asn1 import DerBitString
from binascii import hexlify, unhexlify

passw=b'21566572697461733131'
s = unhexlify(passw)
cred=str(s,'ascii')
  

Комментарии:

1. pip3 Ссылается ли на ту же установку Python, что и python команда …? Если сомневаетесь, используйте python -m pip ... .

2. все та же ошибка

3. C:UsersRaw.306498Desktop > python -m pip install -обновить требования к pycryptodome, которые уже обновлены: pycryptodome в c:usersrawat.306498appdatalo cal programs pythonpython37libsite-packages (3.8.0) C:UsersRaw.306498Desktop >python test.py Обратная трассировка (последний последний вызов): Файл «test.py «, строка 2, в <module> из Crypto. Ошибка при импорте шифра Из ModuleNotFoundError: нет модуля с именем ‘Crypto’ C:UsersRaw.306498Desktop >

4. установка pip3 Crypto должна устранить ошибку. еще sudo pip3 устанавливает Crypto

5. запустите эти команды в cmd и покажите нам результат: where python и where pip и where pip3

Ответ №1:

решение этой проблемы для пользователей Windows объясняется в документации здесь, и в нем говорится:

Основная причина заключается в том, что в прошлом вы, скорее всего, устанавливали несвязанный, но с аналогичным именем пакет crypto, который работает в пространстве имен crypto

Исправьте проблему с:

 pip uninstall crypto
pip uninstall pycryptodome
pip install pycryptodome
  

более подробную информацию о причине можно увидеть в этом выпуске github

ОБНОВЛЕНИЕ:
Если решение, указанное в документации, не сработало, вам нужно изменить имя папки пакета с crypto на Crypto . чтобы найти, где находится папка пакета:

  1. узнайте, где находится ваш исполняемый файл python, с помощью этой команды: where python .
    Вывод должен выглядеть следующим образом:
    C:Users_YourUserName_AppDataLocalProgramsPythonPython37-32python.exe
  2. Теперь измените свой каталог в cmd на папку, содержащую python:
    cd C:Users_YourUserName_AppDataLocalProgramsPythonPython37-32
  3. запустите эти:

    cd ..
    cd cd Libsite-packages

  4. откройте проводник в этом каталоге:
    explorer .
  5. В открывшемся проводнике вы можете увидеть папку с именем: crypto переименуйте ее в Crypto. (второе начинается с заглавной буквы C)

Ответ №2:

я решил эту проблему на самом деле файл с аналогичным именем уже хранится в библиотеке python, поэтому сначала я удаляю его, а затем устанавливаю pycrypto с помощью pip

Комментарии:

1. Да! об этом говорится в вопросе, упомянутом в моем ответе! Он должен был быть удален с помощью pip uninstall . Итак, вы сделали это вручную, используя file Explorer, да?