importeurror: geen module genaamd Crypto.cijfer

Wanneer ik app.py probeer (Python 3.3, Pycrypto 2.6), blijft mijn virtualenv de hierboven vermelde fout terug. Mijn importinstructie is gewoon from Crypto.Cipher import AES. Ik zocht naar duplicaten en je zou kunnen zeggen dat er wat zijn, maar ik heb de oplossingen geprobeerd (hoewel de meeste niet eens oplossingen zijn) en niets werkte.

U kunt zien hoe de bestanden zijn voor Pycrypto hieronder:


1, Autoriteit 100%

Ik had hetzelfde probleem (hoewel op Linux). De oplossing was vrij eenvoudig – voeg toe:

libraries:
- name: pycrypto
  version: "2.6"

Naar mijn app.yamlbestand. Omdat dit in het verleden correct werkte, neem ik aan dat dit een nieuwe vereiste is.


2, Autoriteit 294%

Ik had hetzelfde probleem op mijn Mac bij het installeren met pip. Ik verwijderde vervolgens pycryptoen installeerde het opnieuw met easy_install, zoals deze:

pip uninstall pycrypto
easy_install pycrypto

Ook als Luke commentaar: Als u problemen ondervindt, moet u deze uitvoeren als admin (sudo)

Ik hoop dat dit helpt!

EDIT: als Winklerr correct noteert, is Pycrypto niet langer veilig. Gebruik in plaats daarvan pycryptodome, het is een drop-in vervanging


3, Autoriteit 156%

Ik heb dit ook op Mac gestuurd en het lijkt te hebben gerelateerd aan het hebben van helaas vergelijkbaar met de naam “Crypto” -module (niet zeker waarvoor dat is) naast Pycrypto via PIP.

De fix lijkt zowel Crypto als Pycrypto met PIP te verwijderen:

sudo pip uninstall crypto
sudo pip uninstall pycrypto

en pycrypto opnieuw installeren:

sudo pip install pycrypto

Nu werkt het zoals verwacht als ik iets doe als:

from Crypto.Cipher import AES

Antwoord 4, autoriteit 96%

WAARSCHUWING: gebruik Cryptoof pycryptoniet meer!

Zoals u kunt lezen op deze pagina, is het gebruik van pycryptois nietmeer veilig:

Pycrypto is kwetsbaar voor een op heap gebaseerde bufferoverloop in de ALGnew-functie in block_tempplace.c. Het stelt aanvallers op afstand in staat om willekeurige code uit te voeren in de python-applicatie. Het kreeg het CVE-2013-7459-nummer toegewezen.

Pycrypto heeft geen oplossing voor die kwetsbaarheid vrijgegeven en er is sinds 20 juni 2014 geen toezegging gedaan aan het project.

Update 18-01-2021

De CVE is nu opgelost (bedankt @SumitBadsara voor het erop wijzen!). U kunt de huidige status van de openstaande beveiligingstickets voor elk pakket vinden op de Debian-beveiligingstracker:

Gebruik in plaats daarvan pycryptodomevan Python3!

Zorg ervoor dat u eerst alle versies van Cryptoen pycryptoverwijdert en installeer vervolgens pycryptodome:

pip3 uninstall crypto 
pip3 uninstall pycrypto 
pip3 install pycryptodome

Al deze drie pakketten worden geïnstalleerd in dezelfde map, genaamd Crypto. Het installeren van verschillende pakketten onder dezelfde mapnaam kan een veelvoorkomende bron van fouten zijn!

Voor meer informatie, zie pycryptodome.org.

Best practice: virtuele omgevingen

Om problemen te voorkomen met pip-pakketten in verschillende versies of pakketten die in dezelfde map worden geïnstalleerd (bijv. pycryptoen pycryptodome), kunt u gebruik maken van een zogenaamde virtuele omgeving. Daar kunnen de geïnstalleerde pip-pakketten voor elk afzonderlijk project afzonderlijk worden beheerd.

Gebruik de volgende opdrachten om een virtuele omgeving te installeren en alles in te stellen:

# install python3 and pip3
sudo apt update
sudo apt upgrade
sudo apt install python3
sudo apt install python3-pip
# install virtualenv
pip3 install virtualenv
# install and create a virtual environment in your target folder
mkdir target_folder
cd target_folder
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

Zie voor meer informatie docs.python-guide.org.


Antwoord 5, autoriteit 49%

Op de mac… als je dit tegenkomt… probeer dan eens of je in plaats daarvan crypto kunt importeren?

Zo ja… de pakketnaam is het probleem cvs c. Om dit te omzeilen… voeg je deze regels toe aan de bovenkant van je script.

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

Je weet dat je paramiko met succes moet kunnen importeren.


Antwoord 6, autoriteit 47%

Ik heb de oplossing gevonden.Probleem ligt waarschijnlijk in hoofdlettergevoeligheid (op Windows).

Verander gewoon de naam van de map:

  • C:\Python27\Lib\site-packages\Crypto
  • naar: C:\Python27\Lib\site-packages\Crypto

Zo is de map genoemd naar de installatie van pycrypto:

Ik heb het veranderd in:

En nu werkt de volgende code prima:


Antwoord 7, autoriteit 37%

Het verwijderen van Cryptoen pycryptowerkt bij mij. Installeer dan alleen pycrypto:

pip uninstall crypto 
pip uninstall pycrypto 
pip install pycrypto

Antwoord 8, autoriteit 31%

typ commando:

sudo pip install pycrypto

9, Autoriteit 11%

Als u Redhat, Fedora, CentOS:

gebruikt

sudo yum install pycrypto

Voor mijn zaak, installeer ik het installeren met PIP


10, Autoriteit 11%

Als u een MacOS, hernoem lib-map lib/python3.7/site-packages/cryptonaar lib/python3.7/site-packages/crypto


11, Autoriteit 9%

Als u deze module gebruikt met Python3 en problemen hebben met import.
Probeer dit.

pip uninstall crypto
pip uninstall pycryptodome
pip install pycryptodome

Veel succes!


12, Autoriteit 6%

Het kan een probleem zijn bij het laden van python-modules die via pip zijn geïnstalleerd. Raadpleeg dit antwoord Kan Python-modules niet laden geïnstalleerd via pip uit de map site-packagesen probeer zoiets als

python -m pip install pycrypto

Antwoord 13, autoriteit 6%

Werkte voor mij (Ubuntu 17.10)

Venv verwijderen en opnieuw maken met 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 is verouderd, had er problemen mee, gebruikte Pycryptodome


Antwoord 14, autoriteit 6%

Dit werkte voor mij

pip install pycryptodome==3.4.3

Antwoord 15, autoriteit 4%

Ik los dit probleem op door de eerste letter naar boven te veranderen.
Zorg ervoor dat ”from Crypto.Cipher import AES” niet ”from crypto.Cipher import AES”.


Antwoord 16, autoriteit 4%

Probeer met pip3:

sudo pip3 install pycrypto

Antwoord 17, autoriteit 4%

Dit lijkt misschien raar, maar na het installeren van pycryptoof pycryptodome, moeten we de directorynaam Cryptobijwerken naar Cryptoin lib/site-packages

Referentie


Antwoord 18, autoriteit 3%

Voor CentOS 7.4 installeerde ik eerst pip en daarna pycrypto met pip:

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

Antwoord 19, autoriteit 3%

Tot op heden heb ik hetzelfde probleem bij het importeren van from Crypto.Cipher import AESzelfs als ik pycrypto een paar keer heb geïnstalleerd/opnieuw geïnstalleerd. Uiteindelijk is het omdat pip standaard ingesteld is op python3.

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

het installeren van pycrypto met pip2 zou dit probleem moeten oplossen.


Antwoord 20

Voor Windows 7:

Ik heb deze fout “Modulefout Crypo.Cipher import AES” doorstaan

Om Pycrypto in Windows te installeren,

Probeer dit in de opdrachtprompt,

Set path=C:\Python27\Scripts (d.w.z. het pad waar easy_install zich bevindt)

Voer dan het volgende uit,

easy_install pycrypto

Voor Ubuntu:

Probeer dit,

Pycrypto downloaden van “https://pypi.python.org/pypi/pycrypto

Verander vervolgens uw huidige pad in een gedownload pad met uw terminal:

Bijvoorbeeld: root@xyz-virtual-machine:~/pycrypto-2.6.1#

Voer vervolgens het volgende uit met behulp van de terminal:

python setup.py installeren

Het heeft voor mij gewerkt. Hoop werkt voor iedereen..


Antwoord 21

Dit probleem kan worden verholpen door de C++-compiler (python27 of python26) te installeren. Download het van Microsoft https://www.microsoft.com/ en-us/download/details.aspx?id=44266en voer het commando : pip install pycryptoopnieuw uit om de gui-webtoegang uit te voeren wanneer u het proces van easy_install.exe.


Antwoord 22

Misschien moet je dit doen:
pycryptodome==3.6.1
voeg het toe aan requirements.txt en installeer, wat het foutenrapport zou moeten elimineren.
het werkt voor mij!


Antwoord 23

Nog een herinnering als je dit probleem nog steeds tegenkomt nadat je cryptoen pycryptoop deze manier hebt verwijderd

pip3 uninstall crypto
pip3 uninstall pycrypto

Controleer of er een map is met de naam crypto(kleine letters) in uw sitepakketten onder
/usr/local/lib/python3.9/site-packages, zorg ervoor dat de python-versie die je hebt gebruikt en het juiste site-packages-pad, verwijder vervolgens de crypto-directory, probeer opnieuw te installeren.


Antwoord 24

Ik ben met 3.7. Het probleem blijft bestaan nadat ik crypto probeer te installeren. En pycrypto faalt gewoon in mijn geval. Dus uiteindelijk is mijn build geslaagd via onderstaand pakket:
pip installeer pycryptodome


Antwoord 25

Ik had een soortgelijk probleem en loste het op met het volgende commando

sudo pip3 install py

Antwoord 26

Ik had hetzelfde probleem in django. Ik kreeg een foutmelding tijdens het importeren:

van Crypto.Cipher AES importeren

toen installeerde ik pycryptodome en
gebruikt onder de lijn en veranderde hoofdletter C in kleine c

van crypto.Cipher import AES


Antwoord 27

Zelfs na het installeren van Crypto was ik onder de foutmelding

> python my_script.py
Traceback (most recent call last):
File "D:\gitworkspace\cloudtools\py\my_script.py", line 19, in <module>
from Crypto.Cipher import AES
ModuleNotFoundError: No module named 'Crypto'

Dan in de post Ik heb hieronder opdracht gevonden die dit heeft opgelost probleem.
pip install pycryptodome


28

Het antwoord is eenvoudig, gewoon één ding dat ik 4 dagen heb gezocht, maar kon het antwoord niet vinden en ik vond een oplossing die net het crypto map naar Crypto (Make heeft gevonden C Capital)

Other episodes