Microsoft Windows Python-3.6 PyCrypto安装错误

use*_*602 34 windows visual-studio pycrypto python-3.6

pip install pycrypto 使用python3.5.2可以正常工作,但是由于python3.6而失败并出现以下错误:

inttypes.h(26):错误C2061:语法错误:标识符'intmax_t'

use*_*602 58

Python安装目录中的文件include\pyport.h不再有#include <stdint.h>.这使得intmax_t未定义.

Microsoft VC编译器的解决方法是通过OS环境变量CL强制包含stdint.h:

  1. 使用管理员权限打开命令提示符
  2. 从您的VC版本运行vsvars32.bat
  3. 设置CL = -FI"%VCINSTALLDIR%\ INCLUDE\stdint.h"
  4. 请安装pycrypto

  • 为什么没有将其修补到Windows Python发行版中?为了记录,我能够使用vcvarsall.bat`C:\ Program Files(x86)\ Microsoft Visual Studio 14.0\VC\vcvarsall.bat`. (10认同)
  • 对我来说,步骤1 + 2可以缩短为:**从开始菜单,运行"Visual C++ 2015 x86本机构建工具命令提示符"** (4认同)
  • 该问题已在 https://github.com/dlitz/pycrypto/issues/221 上报告。问题出在 pycrypto 本身,它提供了一个不完整的 ```stdint.h```,我已经添加了对该错误报告所需的修复的解释。 (2认同)
  • 此外,如果您使用 **VS 2017** 构建它,则应按如下方式修改标头位置:**set CL=-FI"%VCINSTALLDIR%\Tools\MSVC\14.16.27023\include\stdint.h** -当然_14.16.27023_数量取决于VS版本,我的是15.9。 (2认同)

Mar*_*ein 20

我已成功在python 3.6,Windows 10,Visual Studio 2017上安装pycrypto 2.6.1.

  1. 在开始菜单中使用管理员权限打开"x86_x64 VS 2017的跨工具命令提示符".
  2. 设置CL = -FI"%VCINSTALLDIR%Tools\MSVC\14.11.25503\include\stdint.h"
  3. 请安装pycrypto

在此输入图像描述

  • 终于工作解决了!只要确保检查MSVC文件夹的实际版本,我就有了"14.12.25827".谢了哥们 (5认同)

naa*_*man 18

感谢user1960422的回答.
pycrypto 2.6.1的PowerShell步骤(通过simple-crypt)/ Python 3.6/Windows 10:

$env:VCINSTALLDIR="C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC"
$env:CL="-FI`"$env:VCINSTALLDIR\INCLUDE\stdint.h`""
Run Code Online (Sandbox Code Playgroud)

成功的simple-crypt/pycrypto安装

我还需要按照以下答案:https://stackoverflow.com/a/24822876/8751739修复winrandom模块错误.


小智 12

使用PyCrytodome而不是pycryto.Pycryto已停产,不再受到积极支持.


use*_*422 6

我已经成功地在 python 3.6 和 windows 10 上安装了 pycrypo 2.6.1。

  1. 设置一个环境变量,如下所示。 Visual Studio 安装目录
  2. 打开cmd.exe
  3. 激活虚拟环境
  4. 从 github 下载 pycrypto 2.6.1 版本并解压。
  5. 为 pycrypto 设置环境变量 set CL=/FI"%VCINSTALLDIR%\\INCLUDE\\stdint.h" %CL%
  6. 运行设置命令 python setup.py install
  7. 我的结果在这里 在此处输入图片说明

如果这可以帮助某人,我会很高兴。