ImportError: нет модуля с именем Crypto.Шифр

когда я пытаюсь запустить app.py (Python 3.3, PyCrypto 2.6) мой virtualenv продолжает возвращать ошибку, указанную выше. Мой оператор импорта просто from Crypto.Cipher import AES. Я искал дубликаты, и вы можете сказать, что есть некоторые, но я попробовал решения (хотя большинство из них даже не решения), и ничего не сработало.

вы можете увидеть, что файлы как для PyCrypto ниже:

17 ответов


У меня была такая же проблема (хотя и в Linux). Решение было довольно простым - добавить:

libraries:
- name: pycrypto
  version: "2.6"

в моем приложении.файл yaml. Поскольку это работало правильно в прошлом, я предполагаю, что это новое требование.


у меня была такая же проблема на моем Mac при установке с pip. Затем я удалил pycrypto и установил его снова с easy_install, например:

pip uninstall pycrypto
easy_install pycrypto

также, Как прокомментировал Люк: если у вас возникли проблемы с запуском этих команд, обязательно запустите их как admin (sudo)

надеюсь, что это помогает!


я столкнулся с этим на Mac, и, похоже, это связано с тем, что, к сожалению, аналогичный модуль "crypto" (не уверен, для чего это) установлен рядом с pycrypto через pip.

исправление, похоже, удаляет как crypto, так и pycrypto с pip:

sudo pip uninstall crypto
sudo pip uninstall pycrypto

и переустановка pycrypto:

sudo pip install pycrypto

Теперь он работает, как ожидалось, когда я делаю что-то вроде:

from Crypto.Cipher import AES

на mac... если ты столкнешься с этим.. попробуйте посмотреть, можете ли вы импортировать crypto вместо этого?

Если это так.. имя пакета является проблемой C vs c. Чтобы обойти это.. просто добавьте эти строки в начало сценария.

import crypto
import sys
sys.modules['Crypto'] = crypto

вы знаете, что должны иметь возможность успешно импортировать paramiko.


команды типа:

sudo pip install pycrypto

Я нашел решение. проблема, вероятно, в чувствительности к регистру (в Windows).

просто измените имя папки:

  • C:\Python27\Lib\site-packages\crypto
  • в: C:\Python27\Lib\site-packages\Crypto

вот как папка была названа после установки pycrypto: enter image description here

Я изменил его на: enter image description here

и теперь следующие код работает нормально: enter image description here


у меня была такая же проблема 'ImportError: No module named Crypto.Cipher', начиная с использования GoogleAppEngineLauncher (версия > 1.8.X) с шаблоном GAE на OSX 10.8.5 (Mountain Lion). В Google App Engine SDK с python 2.7 runtime, pyCrypto 2.6 является предлагаемой версией. Решение, которое сработало для меня, было...

1) pycrypto2 скачать.6 источник где-то распакуйте его(~/Downloads/pycrypto26)

например, git clone https://github.com/dlitz/pycrypto.git

2) cd (cd ~/Downloads/pycrypto26) тогда

3) выполните следующую команду терминала внутри предыдущей папки для установки pyCrypto 2.6 вручную в папке GAE.

sudo python setup.py install --install-lib /Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine

Если вы используете redhat, fedora, centos:

sudo yum install pycrypto

в моем случае я coouldnot установить его с помощью pip


удаление crypto и pycrypto работает на меня. Тогда установите только pycrypto. pip удалить crypto pip удалить pycrypto pip установить pycrypto


попробовать pip3:

sudo pip3 install pycrypto

это может быть проблема загрузки модулей python, установленных через pip. Обратитесь к этому ответу не удается загрузить модули Python, установленные через pip из каталога site-packages и попробуйте что-то вроде

python -m pip install pycrypto

Для Windows 7:

Я прошел через эту ошибку " Ошибка модуля Crypo.Шифр импорта AES"

для установки Pycrypto в Windows,

попробуйте это в командной строке

задать путь=C:\Python27\Scripts (i.e путь, где находится easy_install)

затем выполните следующие действия,

pycrypto easy_install

Для Ubuntu:

попробуйте это,

Скачать Pycrypto от "https://pypi.python.org/pypi/pycrypto"

затем измените текущий путь на загруженный путь с помощью терминала:

например: root@xyz-виртуальная машина:~ / pycrypto-2.6.1#

затем выполните следующие действия с помощью терминала:

python setup.py установить

Это сработало для меня. Надежда работает на всех..


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


эту проблему можно устранить, установив компилятор C++ (python27 или python26). Загрузите его из Microsoft https://www.microsoft.com/en-us/download/details.aspx?id=44266 и повторите команду:pip install pycrypto для запуска gui web access, когда вы убиваете процесс easy_install.exe.


для CentOS 7.4 я сначала установил pip, а затем pycrypto с помощью pip:

> sudo yum -y install python-pip 
> sudo python -m pip install pycrypto

работал на меня (Ubuntu 17.10)

удаление venv и создание его снова с помощью python v3.6

pip3 install PyJWT
sudo apt-get install build-essential libgmp3-dev python3-dev
pip3 install cryptography
pip3 install pycryptodome
pip3 install pycryptodomex

Pycrypto устарел, имел проблемы с ним, использовал Pycryptodome


На сегодняшний день, у меня такая же проблема при импорте from Crypto.Cipher import AES даже я установил/переустановил pycrypto несколько раз. В конечном итоге это потому, что pip по умолчанию python3.

~ pip --version pip 18.0 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)

установка pycrypo с pip2 должна решить эту проблему.