Estoy configurando el criptodomo de Python en una máquina con Windows 7 de 64 bits. Estoy usando el módulo setup.py para lograr esto. La razón por la que estoy usando setup.py en lugar de pip es porque la máquina en la que estoy instalando esto no tiene acceso externo a Internet y, por lo tanto, pip no funcionará.

He instalado los compiladores de C ++ de 64 bits utilizando Windows SDK y han ejecutado los siguientes comandos en la línea CMD por las instrucciones que se detallan desde lo siguiente LINK .

  • Cd de elemento de lista "C: \ Archivos de programa \ Microsoft SDKs \ Windows \ v7.1"
  • Listar elemento cmd / V: ON / K Bin \ SetEnv.Cmd / x64 / release
  • Conjunto de elementos de la lista DISTUTILS_USE_SDK = 1

Cuando ejecuto setup.py aparece el siguiente mensaje de error:

  File "setup.py", line 443, in <module>
    set_compiler_options(package_root, ext_modules)
  File "C:\Python33\cryptodome\pycryptodome-3.8.2\compiler_opt.py", line 304, in
 set_compiler_options
    clang = compiler_is_clang()
  File "C:\Python33\cryptodome\pycryptodome-3.8.2\compiler_opt.py", line 239, in
 compiler_is_clang
    return test_compilation(source, msg="clang")
  File "C:\Python33\cryptodome\pycryptodome-3.8.2\compiler_opt.py", line 82, in
test_compilation
    objects = compiler.compile([fname], extra_postargs=extra_cc_options)
  File "C:\Python33\lib\distutils\msvc9compiler.py", line 461, in compile
    self.initialize()
  File "C:\Python33\lib\distutils\msvc9compiler.py", line 372, in initialize
    vc_env = query_vcvarsall(VERSION, plat_spec)
  File "C:\Python33\lib\distutils\msvc9compiler.py", line 288, in query_vcvarsal
    raise ValueError(str(list(result.keys())))
ValueError: ['path']

Aquí está el código que parece estar asociado con el error:

    #looks to contain a set of possible environment variable names
    interesting = set(("include", "lib", "libpath", "path"))


    #populates result with keys and values from actual environment variables
    stdout = stdout.decode("mbcs")
            for line in stdout.split("\n"):
                line = Reg.convert_mbcs(line)
                if '=' not in line:
                    continue
                line = line.strip()
                key, value = line.split('=', 1)
                key = key.lower()
                if key in interesting:
                    if value.endswith(os.pathsep):
                        value = value[:-1]
                    result[key] = removeDuplicates(value)


    #tests whether all the keys within result are in interesting
    if len(result) != len(interesting):
         raise ValueError(str(list(result.keys())))

¿Podría esto ser debido a algunos valores faltantes dentro de las variables de entorno? Si es así, ¿cuáles deberían ser esos valles?

0
GitItGotItGood 26 jun. 2019 a las 02:48

1 respuesta

La mejor respuesta

Aunque el mensaje de error no es muy útil, lo arreglé agregando los 3 valores: lib, include, libpath (la ruta ya se agregó) a las variables de entorno en la máquina.

1
GitItGotItGood 28 jun. 2019 a las 15:07