Когда я пытаюсь запустить app.py (Python 3.3, PyCrypto 2.6), мой virtualenv продолжает возвращать ошибку, указанную выше. Мой оператор import - это просто from Crypto.Cipher import AES
. Я искал дубликаты, и вы можете сказать, что они есть, но я пробовал решения (хотя большинство из них даже не являются решениями), и ничего не помогло.
Вы можете увидеть, как выглядят файлы для PyCrypto ниже:
У меня была такая же проблема на моем Mac при установке с помощью pip
. Затем я удалил pycrypto
и установил его снова с помощью easy_install
, вот так:
pip uninstall pycrypto
easy_install pycrypto
также как прокомментировал Люк: Если у вас возникли проблемы с запуском этих команд, убедитесь, что вы запускаете их от имени администратора (sudo).
Надеюсь, это поможет!
EDIT: Как правильно заметил winklerr выше, pycrypto больше не безопасен. Вместо него используйте pycryptodome, это полноценная замена.
Я столкнулся с этим на Mac, а также, и это, кажется, связанных с имея, к сожалению, аналогично по кличке "крипто" и модуль (не уверен, что это для) установлен рядом с pycrypto через Пип.
Исправление представляется удаления Crypto и pycrypto с Pip:
sudo pip uninstall crypto
sudo pip uninstall pycrypto
и повторная pycrypto:
sudo pip install pycrypto
Теперь он работает, как ожидалось, когда я делаю что-то вроде:
from Crypto.Cipher import AES
У меня была такая же проблема (правда, на Linux). Решение было довольно простым - добавьте:
libraries:
- name: pycrypto
version: "2.6"
в мой файл app.yaml
. Поскольку в прошлом это работало правильно, я предполагаю, что это новое требование.
На Mac... Если вы столкнетесь с этим.. попробовать, чтобы увидеть, если вы можете импортировать вместо крипто?
Если так.. имя пакета-это вопрос " с "Против " с". Чтобы обойти это.. просто добавьте следующие строки в верхней части вашего скрипта.
import crypto
import sys
sys.modules['Crypto'] = crypto
Вы знаете, должны быть в состоянии импортировать парамико.
Удаление крипто
и работает pycrypto на меня. Тогда установите только pycrypto
:
pip uninstall crypto
pip uninstall pycrypto
pip install pycrypto
Я'вэ была такая же проблема 'ImportError: нет модуль с именем крипто.Шифр'
, с помощью GoogleAppEngineLauncher (версия > 1.8.Х) с ГЭ шаблон на OSX 10.8.5 (горный лев). В Google Приложение движок SDK с среда выполнения Python 2.7, pyCrypto 2.6 предложенная версия.
Решение, что работал для меня было...
~/загрузки/pycrypto26
)например, git https://github.com/dlitz/pycrypto.git клон
компакт-диск
(новый CD ~/загрузки/pycrypto26
) тогда
выполните следующую команду терминала внутри предыдущей папке чтобы установить pyCrypto 2.6 вручную в папку Гэ.
sudo python setup.py install --install-lib /Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine
Как вы можете прочитать на этой странице, Использование pycrypto-это не ней:
Pycrypto уязвим для кучи переполнение буфера в функции ALGnew в block_templace.С. Она позволяет удаленным злоумышленникам выполнить произвольный код в приложения Python. Он был назначен уязвимость CVE-2013-7459 Количество.
Pycrypto не издавал, чтобы исправить эту уязвимость и не был выполнен коммит в проект с 20 июня 2014.
Решение: pycryptodome использовать Питон3 и``!
ТЛ;ДР: pip3 установить pycryptodome
Для установки виртуальной среды и настройки все, используйте следующие команды:
# install python3 and pip3
sudo apt update
sudo apt upgrade
sudo apt install python3
sudo apt install python3-pip
# install and create a virtual environment
# cd to or mkdir the folder where you want your venv
pip3 install virtualenv
python3 -m virtualenv .
# now activate your venv and install pycryptodome
source bin/activate
pip3 install pycryptodome
# check if everything worked:
# start the interactive python console and import the Crypto module
# when there is no import error then it worked
python
>>> from Crypto.Cipher import AES
>>> exit()
# don't forget to deactivate your venv again
deactivate
Дополнительные сведения см. В разделе pycryptodome.org
Попробуй с pip3:
sudo pip3 install pycrypto
Работал для меня (Убунту 17.10)
Удаление venv и снова создавая его с помощью Python В3.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
Это может быть проблема загрузки модулей Python устанавливаются через Пип. Обратитесь к этому https://stackoverflow.com/questions/25276329/cant-load-python-modules-installed-via-pip-from-site-packages-directory ответ и попробовать что-то вроде
python -m pip install pycrypto
Эта проблема может быть решена путем установки компилятора C++ (python27 или python26). Скачать его с сайта Microsoft https://www.microsoft.com/en-us/download/details.aspx?id=44266 и повторно выполните команду : типун установить pycrypto
, чтобы запустить веб-доступ, когда вы убить процесс easy_install.exe
.
Я решить эту проблему путем изменения первой буквы в верхний. Убедитесь, что ''от крипто.Шифр импорт ня'' Не ''от крипто.Шифр импорт ня''.
Для Windows 7:
У меня по этой ошибке "ошибка модуля Crypo.Шифр импорт ня"и
Чтобы установить Pycrypto в Windows,
Попробуйте выполнить в командной строке
Установить путь=с:\Python27\сценарии (я.е путь где находится easy_install есть)
Затем выполните следующие действия
easy_install pycrypto
Для Ubuntu:
Попробуйте это,
Pycrypto скачать от "https://pypi.python.org/pypi/pycrypto"
Затем измените ваш текущий путь к загруженным путь через ваш терминал:
Например: корень@АБВ-виртуальных машин:~/pycrypto-2.6.1#
Затем выполнить следующим использованием терминала:
питон setup.py установите
Это'ы работал для меня. Надеюсь, что работает для всех..
На сегодняшний день, я'м, имея же проблема при импорте из крипто.Импорт шифр AES даже я'вэ установить/переустановить pycrypto несколько раз. В конечном итоге это's, потому что типун дефолт питон3.
~ Пип-версия типун 18.0 в /usr/местные/библиотека/питон3.7/сайт-пакеты/Пип (питон 3.7)
установка pycrypo с pip2 должны решить эту проблему.