Когда я пытаюсь запустить app.py (Python 3.3, PyCrypto 2.6), мой virtualenv продолжает возвращать ошибку, указанную выше. Мой оператор импорта просто from Crypto.Cipher import AES
. Я искал дубликаты, и вы могли бы сказать, что они есть, но я попробовал решения (хотя большинство из них даже не решения), и ничего не помогло.
Вы можете увидеть, как выглядят файлы для PyCrypto, ниже:
Похоже, вы находитесь в виртуальном мире. Правильно ли активирован ваш virtualenv? — person Graham Smith schedule 28.10.2013
@ChristianTernus Активирован правильно. — person Graham Smith schedule 28.10.2013
Я была такая же проблема. Это будет звучать немного неубедительно, но чтобы решить эту проблему, я просто перестал использовать OSX, я установил VirtualBox и дистрибутив Linux, и все это сработало — person Graham Smith schedule 28.05.2016
Чего ждать? ImportError
отображается в python 2
, а в python 3
— ModuleNotFoundError
. — person Graham Smith schedule 13.08.2018
@BlackThunder, python3 -c 'import foo'
дает ImportError: No module named 'foo'
. Я что-то пропустил? — person Graham Smith schedule 02.07.2019
@ r2evans при импорте модулей в код, если модуль не установлен, тогда python 3 дает ModuleNotFoundError
, тогда как python 2 даетImportError
. OP сказал, что он использовал python 3, но ошибка связана с python 2 — person Graham Smith schedule 02.07.2019
Я понимаю, о чем вы говорите, и не возражаю, что существует ModuleNotFoundError
, но каждая комбинация command-line-arg / console / script-file и py2 / py3, которую я пробовал, дает только ImportError
. Возможно я что-то не так делаю. (Я не отвлекаюсь от вашего комментария, просто пытаюсь понять, почему. Спасибо.) Не критично, я не хочу пытаться перехватить этот вопрос. — person Graham Smith schedule 02.07.2019
У меня была такая же проблема (правда, в Linux). Решение было довольно простым — добавить:
в мой
app.yaml
файл. Поскольку в прошлом это работало правильно, я предполагаю, что это новое требование.Чтобы добавить к этому немного больше, в моем случае это не сработало, так как у меня было несколько версий интерпретаторов Python на моем компьютере, и я устанавливал библиотеки в разных версиях. То, что я сделал, было перенесено в виртуальную среду, и все работало гладко, как шелк. — person Graham Smith; 05.08.2017
@neaGaze Как вы перешли в виртуальную среду, чтобы она работала гладко, как шелк? — person Graham Smith; 03.02.2018
@Praxiteles Ну, прошло много времени с тех пор, как я работал над этим проектом, но я думаю, что использовал настройку виртуального окружения Python. В Python вы можете использовать автономную версию или виртуальную среду. Вы можете проверить эту ссылку, если вам нужна дополнительная информация. pythonforbeginners.com/basics / как использовать-python-virtualenv — person Graham Smith; 04.02.2018
Этот ответ не все объясняет, откуда вы берете
app.yaml
файл? — person Graham Smith; 12.06.2019Вы не должны больше использовать
pycrypto
! Проверьте мой ответ, чтобы найти лучшее решение! — person Graham Smith; 25.09.2019введите команду:
Я нашел это при поиске решения для Linux (Debian). У меня сработало следующее: Не могу установить модуль python «pycrypto» на Debian lenny — person Graham Smith; 04.02.2015
У меня была такая же проблема на моем Mac при установке с
pip
. Затем я удалилpycrypto
и снова установил его с помощьюeasy_install
, вот так:также, как прокомментировал Люк: Если у вас возникли проблемы с запуском этих команд, обязательно запустите их от имени администратора (sudo)
Надеюсь это поможет!
РЕДАКТИРОВАТЬ: Как правильно отмечает winklerr выше, пикрипто больше не является безопасным. Вместо этого используйте пикриптодом, это прямая замена
Это странно, но это устранило для меня проблему с OS X Mavericks. Мне нужен sudo для общесистемных библиотек. — person Graham Smith; 19.05.2014
спасибо, элад, я использую 10.9.3, и у меня такая же ошибка. бесконечно благодарен — person Graham Smith; 02.06.2014
Кроме того, если у вас возникли проблемы с запуском этих команд, обязательно запускайте их от имени администратора (sudo) — person Graham Smith; 05.09.2014
Я установил его с помощью pip, который не работал, затем easy_install, который также не работал. (Это в Windows.) Простое удаление его с помощью pip, как вы предлагали, каким-то образом заставило его работать. Я бы никогда не подумал сделать это через миллион лет. Спасибо. — person Graham Smith; 24.08.2015
Это все еще спасает положение Эль-Капитана. — person Graham Smith; 28.02.2016
Кто-нибудь может объяснить, почему это работает? (в OSX 10.11.4 с питоном из доморощенного) — person Graham Smith; 02.06.2016
Если вы установили Python через MacPort или другое, убедитесь, что вы используете правильный easy_install и устанавливаете его в правильный каталог site-packages. — person Graham Smith; 15.07.2016
Сохраните день для Сьерры — person Graham Smith; 16.01.2017
Не забывайте
sudo
, если это не сработает. Он даже не предупредит вас, что у него нет разрешений и, похоже, он что-то установил. — person Graham Smith; 22.04.20172018, образ докера на основе ubuntu (на Mac) (
FROM python:3.6.4
), и это все еще работало. Вот это да. — person Graham Smith; 13.02.2018Как правильно отмечает ниже winklerr,
pycrypto
небезопасен. Вместо этого используйтеpycryptodome
, это прямая замена. — person Graham Smith; 24.10.2019У меня это тоже сработало. Моя работает на Mac OS Catalina. — person Graham Smith; 02.11.2019
Используйте вместо него пикриптодом, это простая замена ››, которая сработала для меня — person Graham Smith; 17.01.2020
@PradeepSanjeewa добро пожаловать! — person Graham Smith; 08.12.2020
На Mac … если вы столкнетесь с этим … попробуйте вместо этого импортировать криптовалюту?
Если так .. имя пакета — это проблема
C
противc
. Чтобы обойти это .. просто добавьте эти строки в начало вашего скрипта.Вы знаете, что у вас должна быть возможность успешно импортировать paramiko.
Это неверно, прочтите здесь: pycryptodome.readthedocs.io/en/latest/src/ — person Graham Smith; 16.05.2020
если вы используете redhat, fedora, centos:
sudo yum install pycrypto
в моем случае я не смог установить его с помощью pip
Это имя пакета, на которое есть ссылка, кажется, больше не существует в yum? пикрипто — person Graham Smith; 30.11.2017
У меня была такая же проблема
'ImportError: No module named Crypto.Cipher'
, так как я использовал GoogleAppEngineLauncher (версия> 1.8.X) с GAE Boilerplate в OSX 10.8.5 (Mountain Lion). В SDK Google App Engine со средой выполнения python 2.7 рекомендуется использовать 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.
вопрос OP имеет отношение к Windows, а не OSX — person Graham Smith; 20.09.2014
Было бы полезно отметить, что установка в корень проекта также будет работать (независимо от платформы) — person Graham Smith; 19.11.2014
Это отличный ответ для пользователей йосемити! — person Graham Smith; 16.01.2015
@Lazaros Dinakis: Это решение, которое сработало .. из всех решений, упомянутых на этой странице. Спасибо — person Graham Smith; 23.04.2015
этот ответ решил это для меня на Mac OSX Yosemite 10.10.5. Единственное, для меня установка не удалась с ошибками. поэтому я вручную скопировал Crypto lib из моей библиотеки python в библиотеку google_appengine. и теперь это работает. — person Graham Smith; 10.11.2015
Для Windows 7:
Я прошел через эту ошибку «Ошибка модуля Crypo.Cipher import AES»
Чтобы установить Pycrypto в Windows,
Попробуйте это в командной строке,
Задайте путь = C: \ Python27 \ Scripts (т.е. путь, по которому находится easy_install)
Затем выполните следующее:
easy_install pycrypto
Для Ubuntu:
Попробуй это,
Загрузите Pycrypto со страницы «https://pypi.python.org/pypi/pycrypto«
Затем измените текущий путь на загруженный с помощью терминала:
Например: root @ xyz-virtual-machine: ~ / pycrypto-2.6.1 #
Затем выполните с помощью терминала следующее:
установка python setup.py
У меня это сработало. Надежда работает на всех ..
Я решил эту проблему, изменив регистр первой буквы на верхний. Убедитесь, что » из Crypto.Cipher импортировать AES » не » из Crypto.Cipher импортировать AES ».
Я нашел решение. Проблема, вероятно, связана с чувствительностью к регистру (в Windows).
Просто измените имя папки:
C:\Python27\Lib\site-packages\crypto
C:\Python27\Lib\site-packages\Crypto
Вот как была названа папка после установки pycrypto:
Я изменил его на:
Теперь следующий код работает нормально:
Это работает, но внутри слишком много пакетов, которые нужно переименовать. — person Graham Smith; 18.01.2019
@ user1288329 Почему это так? Остальные пакеты импортируются в нижнем регистре. У меня работало только переименование в Crypto. — person Graham Smith; 06.12.2020
Эта проблема, вероятно, возникает из-за того, что
crypto
был установлен ранее, что привело к созданию каталога в нижнем регистре. И нечувствительность к регистру Windows после этого помещает все в один и тот же каталог. — person Graham Smith; 06.12.2020Я столько раз сталкивался с этой проблемой, но так и не решил. Вы, мой добрый сэр, и джентльмен, и ученый. ‹Кончик шляпы› — person Graham Smith; 20.01.2021
Я столкнулся с этим и на Mac, и, похоже, это связано с тем, что вместе с pycrypto через pip установлен модуль «crypto» с таким же названием (не уверен, для чего он нужен).
Похоже, исправление удаляет как крипто, так и пикрипто с помощью pip:
и переустановка pycrypto:
Теперь он работает должным образом, когда я делаю что-то вроде:
То же самое для меня в Windows + Vagrant с 64-битной Ubuntu 14.04 и Python3 — person Graham Smith; 13.09.2017
Это работает, за исключением того, что в virtualenv не используйте sudo — person Graham Smith; 09.07.2018
Эту проблему можно решить, установив компилятор C ++ (python27 или python26). Загрузите его с сайта Microsoft https://www.microsoft.com/en-us/download/details.aspx?id=44266 и повторно запустите команду:
pip install pycrypto
, чтобы запустить веб-доступ с графическим интерфейсом пользователя, когда вы завершите процессeasy_install.exe
.Попробуйте использовать pip3:
У меня работает удаление
crypto
иpycrypto
. Затем установите толькоpycrypto
:Вот объяснение этого решения из документации: pycryptodome.readthedocs.io/en/latest/src/ — person Graham Smith; 29.10.2019
У меня это сработало, кроме
pycryptodome
иpycryptodomex
— person Graham Smith; 17.03.2021Это может быть проблема загрузки модулей Python, установленных через pip. См. Этот ответ Не удается загрузить модули Python установлен через pip из каталога site-packages и попробуйте что-то вроде
Для CentOS 7.4 я сначала установил pip, а затем pycrypto с помощью pip:
Работал у меня (Ubuntu 17.10)
Удаление venv и его повторное создание с помощью python v3.6
Pycrypto устарел, были проблемы с ним, использовал Pycryptodome
Это сработало для меня. — person Graham Smith; 17.03.2021
На сегодняшний день у меня такая же проблема при импорте
from Crypto.Cipher import AES
, даже если я установил / переустановил pycrypto несколько раз. В конце концов, это потому, что pip по умолчанию установлен на python3.установка pycrypto с помощью pip2 должна решить эту проблему.
Возможно, вам стоит сделать следующее: pycryptodome == 3.6.1 добавить его в requirements.txt и установить, что должно устранить отчет об ошибке. меня устраивает!
Если у вас macos, переименуйте папку lib
lib/python3.7/site-packages/crypto
вlib/python3.7/site-packages/Crypto
Это сработало для меня, в отличие от других решений. Я использую MacOs — person Graham Smith; 25.02.2020
Здесь похоронено решение, которое сработало для меня (в Windows 10) — person Graham Smith; 16.05.2020
Я с 3.7. Проблема остается после того, как я попытаюсь установить криптовалюту. И в моем случае pycrypto просто не работает. Итак, в итоге моя сборка прошла через пакет ниже: pip install pycryptodome
ВНИМАНИЕ: больше не используйте crypto или pycrypto!
Как вы можете прочитать на этой странице, использование
pycrypto
небезопасно:Обновление 2021-01-18
CVE исправлена (спасибо @SumitBadsara за указание на это!). Вы можете найти текущий статус открытых билетов безопасности для каждого пакета в трекере безопасности Debian:
python-crypto
pycryptodome
Вместо этого используйте Python3 pycryptodome!
Обязательно сначала удалите все версии
crypto
иpycrypto
, а затем установитеpycryptodome
:Все эти три пакета устанавливаются в одну папку с именем
Crypto
. Установка разных пакетов под одним и тем же именем папки может быть частым источником ошибок!Для получения дополнительной информации см. pycryptodome.org.
Лучшая практика: виртуальные среды
Чтобы избежать проблем с пакетами pip в разных версиях или пакетами, которые устанавливаются в одной папке (например,
pycrypto
иpycryptodome
), вы можете использовать так называемую виртуальную среду. Там установленными пакетами pip можно управлять индивидуально для каждого проекта.Чтобы установить виртуальную среду и все настроить, используйте следующие команды:
Для получения дополнительной информации см. docs.python-guide.org </ a. >.
Если у вас в настоящее время установлены криптографические или pycrypto, вы должны сначала удалить их. — person Graham Smith; 30.12.2019
Сейчас это исправлено
security-tracker.debian.org/tracker/CVE-2013- 7459 — person Graham Smith; 16.01.2021
У меня сработал единственный ответ —
pip install pycryptodome
— person Graham Smith; 15.02.2021pip install pycryptodome
сработало !!! (macOS) и виртуальная среда тоже хороши. идеальная кабинка для индивидуального проекта. Потрясающе и спасибо !! — person Graham Smith; 20.06.2021Это может показаться странным, но после установки
pycrypto
илиpycryptodome
нам нужно обновить имя каталогаcrypto
доCrypto
вlib/site-packages
Справочная информация
Это сработало для меня
Если вы используете этот модуль с Python3 и возникли проблемы с импортом. попробуй это.
Удачи!
У меня была похожая проблема, и я решил ее с помощью следующей команды
Еще одно напоминание, если вы все еще сталкиваетесь с этой проблемой после удаления крипто и pycrypto, как это
Просто проверьте, есть ли каталог с именем crypto (нижний регистр) в ваших пакетах сайтов в разделе /usr/local/lib/python3.9/site-packages, убедитесь, что версию python, которую вы использовали, и правильный путь к пакетам сайтов, затем удалите каталог crypto и попробуйте установить снова.
ответ прост: просто сделайте одну вещь, которую я искал 4 дня, но не смог найти ответ, и я нашел решение, просто переименовав папку crypto в Crypto (сделайте C заглавной)
Этот ответ подтвержден, не ходите туда и сюда — person Graham Smith; 11.06.2021
У меня возникла такая же проблема в django. Я получал ошибку при импорте:
из Crypto.Cipher импортировать AES
затем я установил пикриптодом и использовал строку ниже и изменил заглавную букву C на маленькую c
из crypto.Cipher import AES