PyCrypto en el servidor de desarrollo de Google App Engine “ImportError: no se puede importar el nombre de blockalgo”

Tengo una función que encripta una cadena con AES usando PyCrypto. Cuando llamo a esa función en mis pruebas unitarias, todo funciona bien. En el entorno de producción, también funciona bien. Sin embargo, cuando se llama a la función en el servidor de desarrollo GAE, se produce un error: “ImportError: no se puede importar el nombre de blockalgo”. Lo probé en Windows 7 (64 bit) y Mac OS 10.5. Ambos resultaron en el mismo error. Estoy usando Google App Engine con Python 2.7. ¿Cual podría ser el problema?

app.yaml

application: xxx version: 6 runtime: python27 api_version: 1 threadsafe: true libraries: - name: django version: "1.2" - name: webapp2 version: "2.3" - name: jinja2 version: "2.6" - name: pycrypto version: "2.3" - name: PIL version: "1.1.7" builtins: - appstats: on - remote_api: on inbound_services: - mail - warmup 

Función de cifrado:

 def encrypt(plaintext): from Crypto.Cipher import AES import hashlib password = 'xxx' key = hashlib.sha256(password).digest() mode = AES.MODE_ECB encryptor = AES.new(key, mode) BLOCK_SIZE = 16 PADDING = '{' pad = lambda s: s + (BLOCK_SIZE - len(s) % BLOCK_SIZE) * PADDING EncodeAES = lambda c, s: b58encode(c.encrypt(pad(s))) encrypted = EncodeAES(encryptor, plaintext) if len(encrypted) < 22: for i in range (len(encrypted), 22): encrypted += "_" return encrypted 

Asegúrese de que la versión de PyCrypto que está instalada en su sistema local sea la misma que la versión especificada en app.yaml. Piense dos veces antes de actualizar un paquete a la versión más reciente.