ImportError: Crypto.Cipher नाम का कोई मॉड्यूल नहीं


120

जब मैं app.py (Python 3.3, PyCrypto 2.6) चलाने की कोशिश करता हूं, तो मेरा virtualenv ऊपर सूचीबद्ध त्रुटि को वापस करता है। मेरा इम्पोर्ट स्टेटमेंट बस है from Crypto.Cipher import AES। मैंने डुप्लिकेट की तलाश की और आप कह सकते हैं कि कुछ हैं, लेकिन मैंने समाधानों की कोशिश की (हालांकि अधिकांश समाधान भी नहीं हैं) और कुछ भी काम नहीं किया।

आप देख सकते हैं कि नीचे दिए गए PyCrypto के लिए क्या फाइलें हैं:


5
ऐसा लगता है कि आप एक virtualenv में हैं। क्या आपका virtualenv ठीक से सक्रिय है?
क्रिश्चियन टेरनस

@ChristianTernus यह ठीक से सक्रिय है।
ग्राहम स्मिथ

मेरी भी यही समस्या थी। यह थोड़ा लंगड़ा होगा, लेकिन इसे हल करने के लिए मैंने बस OSX का उपयोग करना बंद कर दिया, मैंने VirtualBox और एक linux distro स्थापित किया और यह सब काम किया :)
जॉर्डन

1
रुको क्या? ImportErrorमें दिखाया गया है python 2, जबकि में python 3है यह ModuleNotFoundError
ब्लैक थंडर

@ ब्लेकहंडर, python3 -c 'import foo'पैदावार ImportError: No module named 'foo'। क्या मैं कुछ भुल गया?
r2evans

जवाबों:


62

मुझे एक ही समस्या थी (हालांकि लिनक्स पर)। समाधान काफी सरल था - जोड़ें:

libraries:
- name: pycrypto
  version: "2.6"

मेरी app.yamlफाइल पर। चूंकि यह अतीत में सही ढंग से काम करता था, इसलिए मुझे लगता है कि यह एक नई आवश्यकता है।


1
बस इसे थोड़ा और जोड़ने के लिए, मेरे मामले में यह काम नहीं कर रहा था क्योंकि मेरे पास मेरी मशीन पर पायथन दुभाषियों के कई संस्करण थे और मैं पुस्तकालयों को विभिन्न संस्करणों में स्थापित कर रहा था। मैंने जो कुछ किया वह आभासी वातावरण में चला गया और इसने रेशम की तरह चिकना काम किया।
neaGaze 15

@neaGaze "रेशम की तरह चिकनी" काम करने के लिए आपने "आभासी वातावरण में कैसे कदम रखा"?
प्रिक्सिटेल

1
@Praxiteles वैसे तो मुझे इस प्रोजेक्ट को करते हुए थोड़ी देर हो गई है लेकिन मुझे लगता है कि मैंने पायथन वर्चुअल एनवी सेटिंग का इस्तेमाल किया। पायथन में आप या तो एक स्टैंडअलोन संस्करण या आभासी वातावरण का उपयोग कर सकते हैं। यदि आपको अधिक जानकारी की आवश्यकता है तो आप इस लिंक की जाँच कर सकते हैं pythonforbeginners.com/basics/how-to-use-python-virtualenv
neaGaze

7
यह उत्तर सब कुछ नहीं समझाता है, आपको app.yamlफ़ाइल कहाँ मिल रही है?
विश्रांत

3
आप pycryptoकोई और अधिक का उपयोग नहीं करना चाहिए ! एक बेहतर समाधान के लिए मेरे जवाब की जाँच करें!
winklerrr

196

मैं अपने मैक पर एक ही समस्या थी जब साथ स्थापित pip। मैंने तब pycryptoइसे easy_installइस तरह से फिर से हटाया और स्थापित किया :

pip uninstall pycrypto
easy_install pycrypto

ल्यूक ने भी टिप्पणी की: यदि आपको इन आदेशों को चलाने में परेशानी होती है, तो उन्हें व्यवस्थापक के रूप में चलाना सुनिश्चित करें (sudo)

उम्मीद है की यह मदद करेगा!

EDIT: विंकलियर सही ढंग से ऊपर नोट्स के रूप में, pycrypto अब सुरक्षित नहीं है। इसके बजाय pycryptodome का उपयोग करें, यह एक ड्रॉप-इन प्रतिस्थापन है


4
यह अजीब है, लेकिन इसने मेरे लिए OS X Mavericks पर मुद्दा तय किया। मुझे सिस्टम वाइड लिबास के लिए सुडो की जरूरत थी।
पॉल

2
धन्यवाद elad, मैं 10.9.3 का उपयोग कर रहा हूं और मुझे वही त्रुटि मिली। धन्यवाद एक लाख
ürzgür Fırat polzpolat

4
मैंने इसे पाइप के साथ स्थापित किया था, जो काम नहीं करता था, फिर easy_install, जो भी काम नहीं करता था। (यह विंडोज पर है।) बस पाइप के साथ इसे अनइंस्टॉल करना जैसा कि आपने सुझाव दिया कि किसी तरह इसे काम किया जाए। मैंने कभी ऐसा नहीं सोचा होगा कि एक लाख साल में। धन्यवाद।
user124384

6
यह अभी भी एल Capitan पर दिन बचाता है।
nonbeing

2
क्या कोई समझा सकता है कि यह क्यों काम करता है? (होमबॉक् से अजगर के साथ OSX 10.11.4 पर)
गाबे कोपले

102

मैं मैक पर भी इस में भाग गया, और यह एक दुर्भाग्य से इसी तरह "क्रिप्टो" मॉड्यूल (निश्चित नहीं है कि क्या है के लिए) होने का संबंध है कि पाइप के माध्यम से pycrypto के साथ स्थापित किया।

लगता है कि पाइपलाइन से क्रिप्टो और पाइक्रिप्टो दोनों को हटाया जा रहा है:

sudo pip uninstall crypto
sudo pip uninstall pycrypto

और पुनर्नवीनीकरण बहाल करना:

sudo pip install pycrypto

जब मैं कुछ करता हूं तो यह अपेक्षा के अनुसार काम करता है:

from Crypto.Cipher import AES

मेरे लिए विंडोज में + उबंटू 14.04 64-बिट और पायथन 3 के साथ समान
जूहा अन्टिनन

यह काम करता है सिवाय एक virtualenv में sudo का उपयोग नहीं करते
माइकल Robellard

31

मैक पर ... यदि आप इसमें भाग लेते हैं .. यह देखने की कोशिश करें कि क्या आप इसके बजाय क्रिप्टो आयात कर सकते हैं?

यदि ऐसा है .. पैकेज का नाम मुद्दा Cबनाम है c। इसके आसपास पाने के लिए .. बस अपनी स्क्रिप्ट के शीर्ष पर इन पंक्तियों को जोड़ें।

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

आपको पता है कि पैरामिको को सफलतापूर्वक आयात करने में सक्षम होना चाहिए।


यह सही नहीं है, यहाँ थोड़ा पढ़ें: pycryptodome.readthedocs.io/en/latest/src/…
इगोर माईसव


24

अनइंस्टॉल करना cryptoऔर pycryptoमुझ पर काम करना। फिर केवल स्थापित करें pycrypto:

pip uninstall crypto 
pip uninstall pycrypto 
pip install pycrypto

1
यहाँ डॉक्स से इस समाधान की व्याख्या है: pycryptodome.readthedocs.io/en/latest/src/…
Ilya Orson

23

चेतावनी: pycryptoअब और उपयोग न करें !

आप पर पढ़ सकते हैं के रूप में इस पेज , के उपयोग pycryptoहै नहीं अब और सुरक्षित:

Pycrypto ब्लॉक_templace.c में ALGnew फ़ंक्शन में ढेर-आधारित बफर अतिप्रवाह के लिए असुरक्षित है। यह दूरस्थ हमलावरों को अजगर आवेदन में मनमाने कोड को निष्पादित करने की अनुमति देता है। इसे CVE-2013-7459 नंबर सौंपा गया था ।

Pycrypto ने उस भेद्यता के लिए कोई फिक्स जारी नहीं किया और जून 20, 2014 के बाद से इस परियोजना के लिए कोई प्रतिबद्ध नहीं किया गया था।

समाधान: पायथन 3 और का उपयोग करें pycryptodome!

टी एल; डॉ: pip3 install pycryptodome

पहले cryptoया अन्य संस्करणों की स्थापना रद्द करना सुनिश्चित करें pycrypto

एक नया आभासी वातावरण स्थापित करना

वर्चुअल वातावरण स्थापित करने और सब कुछ सेटअप करने के लिए, निम्न कमांड का उपयोग करें:

# 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

अधिक जानकारी के लिए, pycryptodome.org देखें


1
यदि आपके पास वर्तमान में क्रिप्टो या पाइक्रिप्टो की स्थापना है, तो आपको पहले उन्हें अनइंस्टॉल करना होगा।
गीनो मेम्पिन

21

मुझे इसका हल मिल गया। समस्या शायद संवेदनशीलता (विंडोज पर) में है।

बस फ़ोल्डर का नाम बदलें:

  • C:\Python27\Lib\site-packages\crypto
  • सेवा: C:\Python27\Lib\site-packages\Crypto

यह है कि कैसे pycrypto की स्थापना के बाद फ़ोल्डर का नाम दिया गया था: यहां छवि विवरण दर्ज करें

मैंने इसे बदल दिया है: यहां छवि विवरण दर्ज करें

और अब निम्नलिखित कोड ठीक काम करता है: यहां छवि विवरण दर्ज करें


यह काम करता है, लेकिन सभी के अंदर बहुत सारे पैकेज हैं जिनका नाम बदलने की आवश्यकता है।
user1288329

20

प्रकार:

sudo pip install pycrypto

लिनक्स समाधान (डेबियन) की खोज करते हुए मुझे यह मिला। निम्नलिखित ने मेरे लिए काम किया: डेबियन लेन पर अजगर मॉड्यूल "पाइक्रिप्टो" स्थापित नहीं किया जा सकता
सिल्वरलाइटफॉक्स

8

यदि आप रेडहैट, फेडोरा, सेंटो का उपयोग कर रहे हैं:

sudo yum install pycrypto

मेरे मामले के लिए मैं पाइप का उपयोग करके इसे स्थापित करता हूं


संदर्भित यह पैकेज नाम अब yum पर मौजूद नहीं है? "पाइक्रिप्टो"
k1DBLITZ

8

मैं एक ही समस्या है 'ImportError: No module named Crypto.Cipher', OSX 10.8.5 (माउंटेन शेर) पर GAE Boilerplate के साथ GoogleAppEngineLauncher (संस्करण> 1.8.X) का उपयोग करने के बाद से। Python 2.7 रनटाइम के साथ Google ऐप इंजन SDK में, pyCrypto 2.6 सुझाया गया संस्करण है। मेरे लिए काम करने वाला उपाय था ...

1) डाउनलोड pycrypto2.6 स्रोत इसे कहीं बाहर निकालने ( ~/Downloads/pycrypto26)

उदाहरण के लिए, git clone https://github.com/dlitz/pycrypto.git

2) cd( cd ~/Downloads/pycrypto26) तब

3) GAE फ़ोल्डर में मैन्युअल रूप से pyCrypto 2.6 स्थापित करने के लिए पिछले फ़ोल्डर के अंदर निम्नलिखित टर्मिनल कमांड निष्पादित करें।

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

1
ओपी का सवाल विंडोज के साथ करना है न कि OSX
gldraphael

यह ध्यान रखना उपयोगी हो सकता है कि प्रोजेक्ट रूट पर इंस्टॉल करने से भी काम होगा (प्लेटफ़ॉर्म की परवाह किए बिना)
ओसोडो

यह yosemite उपयोगकर्ता के लिए बहुत अच्छा जवाब है!
KyungHoon किम

@ लाज़रोस दिनकिस: यह वह समाधान है जो इस पृष्ठ में उल्लिखित सभी समाधानों का काम करता है। धन्यवाद
gaurav414u

इस जवाब ने इसे मेरे लिए मैक OSX Yosemite 10.10.5 पर हल कर दिया। केवल एक चीज है स्थापना मेरे लिए त्रुटियों के साथ विफल रही है। इसलिए मैंने google_appengine lib में अपने python lib से Crypto lib को मैन्युअल रूप से कॉपी किया। और अब यह काम करता है।
बोआज सारागौसी

7

यदि आप एक मैकोस हैं, तो लिबर फ़ोल्डर lib/python3.7/site-packages/cryptoका नाम बदलेंlib/python3.7/site-packages/Crypto


इसने मेरे लिए अन्य समाधानों के विपरीत काम किया। मैं
MacOs

यहाँ दफन समाधान है कि मेरे लिए काम किया (विंडोज 10 पर)
जोसेफ


3

यह पाइप के माध्यम से स्थापित अजगर मॉड्यूल लोड करने की समस्या हो सकती है। इस उत्तर को देखें , साइट-पैकेज निर्देशिका से पाइप के माध्यम से स्थापित पायथन मॉड्यूल को लोड नहीं किया जा सकता है और कुछ ऐसा करने का प्रयास करें

python -m pip install pycrypto

3

मेरे लिए काम किया (Ubuntu 17.10)

वेनव को हटाकर फिर से अजगर v3.6 के साथ बनाया गया

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

पाइक्रिप्टो को पदावनत किया जाता है, इसके साथ समस्या थी, पाइक्रिप्टोडोम का इस्तेमाल किया


2

मैं पहले अक्षर मामले को ऊपरी में बदलकर इस समस्या को हल करता हूं। Crypto.Cipher आयात AES '' नहीं '' crypto.Cipher आयात AES '' से सुनिश्चित करें।


2

CentOS 7.4 के लिए मैंने पहले पाइप का उपयोग किया और फिर पाइप का उपयोग करके pycrypto:

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

2

आज तक, from Crypto.Cipher import AESजब मैं कुछ बार इंस्‍टॉल / रीइंस्‍टॉल्‍ड pycrypto इंस्‍टॉल करता हूं, तब भी मुझे यही समस्या आ रही है । अंत यह है क्योंकि पाइप python3 के लिए डिफ़ॉल्ट है।

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

pip2 के साथ pycrypto स्थापित करके इस समस्या को हल करना चाहिए।


1

विंडोज 7 के लिए:

मुझे इस त्रुटि के माध्यम से "मॉड्यूल त्रुटि क्रायपो। सिफर आयात एईएस" मिला

विंडोज में Pycrypto स्थापित करने के लिए,

कमांड प्रॉम्प्ट में यह कोशिश करें,

पथ निर्धारित करें

फिर निम्नलिखित निष्पादित करें,

easy_install pycrypto

उबंटू के लिए:

इसे इस्तेमाल करे,

Pycrypto को " https://pypi.python.org/pypi/pycrypto " से डाउनलोड करें "

फिर अपने टर्मिनल का उपयोग करके अपने वर्तमान पथ को डाउनलोड किए गए पथ में बदलें:

जैसे: रूट @ xyz-virtual-machine: ~ / pycrypto-2.6.1 #

फिर टर्मिनल का उपयोग करके निम्नलिखित को निष्पादित करें:

अजगर setup.py स्थापित

यह मेरे लिए काम किया है। आशा सभी के लिए काम करती है ।।


1

C ++ कंपाइलर (python27 या python26) को इंस्टॉल करके इस समस्या को ठीक किया जा सकता है। इसे Microsoft से डाउनलोड करें https://www.microsoft.com/en-us/download/details.aspx?id=44266 और कमांड को फिर से चलाएं: pip install pycryptoजब आप इस प्रक्रिया को मारते हैं तो gui वेब एक्सेस चलाने के लिए easy_install.exe


1

शायद आपको यह करना चाहिए: pycryptodome == 3.6.1 इसे आवश्यकताओं में जोड़ें। इसे स्थापित करें और इंस्टॉल करें, जो त्रुटि रिपोर्ट को समाप्त कर दे। इससे मेरा काम बनता है!



1

वैसे यह अजीब लग सकता है लेकिन स्थापित करने के बाद pycryptoया pycryptodome, हमें निर्देशिका नाम cryptoको अपडेट करने की आवश्यकता Cryptoहैlib/site-packages

संदर्भ


0

मैं 3.7 के साथ हूं। क्रिप्टो को स्थापित करने का प्रयास करने के बाद समस्या बनी हुई है। और pycrypto सिर्फ मेरे मामले में विफल रहता है। तो अंत में मेरा निर्माण नीचे पैकेज के माध्यम से पारित हुआ: पाइप स्थापित करें pycryptodome

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.