Red de conocimiento informático - Material del sitio web - Cómo instalar pycrypto para mac python

Cómo instalar pycrypto para mac python

Solución 1: Instalar Vs2008 (probado)

Es un proceso completamente estúpido y el problema se resolverá directamente después de la instalación.

Solución 2: Instalar Vs2010 (no probado)

La última vez instalé Vs2010 en mi computadora, pero no pudo resolver el problema directamente como vs2008, así que encontré lo siguiente en Internet No sé si la solución es factible.

Abra "(Lib/distutils/msvc9compiler.py)"

Busque toolskey = "VS%0. f0COMNTOOLS" % versión y cámbiela directamente. to toolskey = "VS100COMNTOOLS"

Solución 3: instalar MinGW (prueba real)

1 Descargue e instale MinGW Dirección de descarga: piler=mingw32

Guardar. ;

5. Ejecute la instalación del módulo original y descubra que aún se informa un error. El contenido del error es: error: el comando 'gcc' falló: no existe tal archivo o directorio. :\MinGW\lib a RUTA.

6. Si ocurre un error durante el proceso de instalación: No se pudo encontrar 'openssl.exe' y luego vaya directamente a la opción de línea de comando '-mno-cygwin'

error: comando ' gcc' falló con el estado de salida 1

La razón es que -mno-cygwin ya no se acepta en gcc 4.6.x y posteriores. Para resolver este problema es necesario modificar el

self.set_executables(compiler='gcc -mno-cygwin -O -Wall',

compiler_so='gcc -mno. -cygwin -mdll -O -Wall',

compilador_ cxx='g++ -mno-cygwin -O -Wall',

linker_exe='gcc',

linker_so='%s -mno-cygwin %s %s'

% (self.linker_dll, share_option,

punto_entrada))

Modificar a :

self.set_executables(compiler='gcc -O -Wall',

compilador_so='gcc -mdll -O -Wall',

compilador _cxx =' g++ -mno-cygwin -O -Wall',

linker_exe='gcc',

linker_so='%s -mno-cygwin %s %s'

% (self.linker_dll,shared_option,

entry_point))

Las tres soluciones mencionadas eran demasiado engorrosas para instalar Visual Studio, así que probé el tercer método. Openssl.exe no encontró ningún error, ya debería existir y el directorio del archivo distutils.cfg es un poco diferente en python2.7, en Python27\Lib\distutils.

Hasta el último modificador, el error final es:

error: esperado '=', ',', ';', 'asm' o '__attribute__' antes de 'PyInt_AsUnsignedLongLongMask'

No resuelto.

Hay una advertencia en el medio, utilice la ruta de estilo DOS en cygwin y establezca la ruta CYGWIN=nodosfilewarning para evitarlo

advertencia de cygwin:

Ruta de estilo MS-DOS detectada: C:\cygwin\home\ADMINI~1\hadoop\/build/native

Ruta equivalente a POSIX preferida:

Acerca de POSIX Para más detalles sobre rutas, consulte la guía del usuario:

/ cygwin-ug-net/using.html#using-pathnames

02/12/13 10:34:53 INFORMACIÓN namenode. NameNode: STARTUP_MSG:

python setup.py install build --compiler=mingw32

Este comando se intentó sin éxito.

En esta URL:/questions/1687283/why-canti-just-install-the-pycrypto, un amigo internacional me presentó el uso de PyPM para la instalación. Dado que es necesario instalar una herramienta independiente, no lo hice. Pruébelo:

Puede instalar (paquete binario precompilado) pycrypto usando PyPM:

C:> pypm install pycrypto

Esté preparado para realizar estas operaciones:

Se instalarán los siguientes paquetes:

pycrypto-2.0.1

Obtener: [pypm.activestate.com] pycrypto 2.0.1-1

Instalar pycrypto-2.0.1

PyPM se puede instalar instalando ActivePython./activepython/

Más tarde, en /blog/1796640, vi que hay un usuario en la dirección /311989/484801 para instalar la versión precompilada

pero el código de muestra no se ejecuta.

Debido a que hay un parámetro iv en el cifrado aes y en el modo cbc, cámbielo a este

#! /usr/bin/env python

# -*- codificación: utf-8 -*-

desde Crypto.Cipher import AES

PADDING = '\ 0'

pad_it = lambda s: s+(16 - len(s) %16)*PADDING

if __name__ == "__main__":

clave = '1234567890123456'

data = 'qwertyuiopasdfgh'

obj = AES.new(clave, AES.MODE_CBC, datos)

#obj = AES.new (clave, AES.MODE_ECB)

cripta = obj.encrypt(datos)

imprimir cripta

#obj2 = AES.new(clave, AES.MODE_ECB )

cripta = obj.encrypt(datos)

imprimir cripta

#obj2 = AES.new(clave, AES.MODE_ECB)