Tengo una función que encripta una cadena con AES utilizando PyCrypto. Cuando llamo a esa función en las pruebas de mi unidad, todo funciona bien. En el entorno de producción, funciona bien también. 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 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? funciónPyCrypto en el servidor de desarrollo de Google App Engine "ImportError: no se puede importar el nombre blockalgo"
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
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
Cualquier cosa. Debes mostrar tu app.yaml y algún código. – Chris