42

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

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

4

8 回答 8

73

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

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

  1. 打开命令提示符
  2. 通过运行 vcvars*.bat 设置 VC 环境(根据 VC 版本和架构选择文件名)
  3. set CL=-FI"Full-Path\stdint.h" (对环境使用完整路径的实际值)
  4. 点安装pycrypto
于 2017-01-25T04:19:02.260 回答
35

我已经在 python 3.6、Windows 10、Visual Studio 2017 上成功安装了 pycrypto 2.6.1。

  1. 在开始菜单中以管理员权限打开“x86_x64 Cross-Tools Command Prompt for VS 2017”。

  2. set CL=-FI"%VCINSTALLDIR%Tools\MSVC\14.11.25503\include\stdint.h"

  3. pip install pycrypto

在此处输入图像描述

于 2017-10-24T23:22:56.793 回答
22

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

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

成功的 simple-crypt / pycrypto 安装

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

于 2017-12-11T09:16:36.553 回答
14

使用PyCryptodome而不是pycrypto。pycrypto 已停产,不再受到积极支持。PyCryptodome 公开了与 pycrypto 几乎相同的 API(来源)。

于 2017-11-17T15:46:06.470 回答
6

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

  1. 设置如下环境变量。 视觉工作室安装目录
  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. 我的结果在这里 在此处输入图像描述

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

于 2017-07-14T05:18:03.797 回答
2
  • 卸载当前的 Python 版本

  • 为 amd64 架构安装 Python

  • 遵循其他公认的解决方案:

    • 打开“VS 2017 的 x86_x64 跨工具命令提示符”
    • 为您的 Visual Studio MSVC 安装路径添加新的环境变量
    • set CL=-FI"%VCINSTALLDIR%Tools\MSVC\14.11.25503\include\stdint.h"
    • pip install pycrypto
于 2020-02-22T14:59:15.227 回答
2

对于遇到与我相同情况的人:

环境

  • Windows 10 企业版 v10.0.18363 内部版本 18363
  • 蟒蛇 3.8

脚步

  1. https://visualstudio.microsoft.com/visual-cpp-build-tools/下载Microsoft C++ 构建工具
  2. 运行以上 setup exe 并安装默认组件
    • MSVC v142 - VS 2019 C++ x64/x86 构建工具
    • 视窗 10 开发工具包
    • 适用于 Windows 的 C++ CMake 工具
    • 测试工具核心功能——构建工具
    • C++ AddressSanitizer(实验性)
  3. 重启电脑
  4. Start menu > x64 Native Tools Command Prompt for VS 2019,会弹出一个 cmd 窗口
  5. 执行set CL=-FI"C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.27.29110\include\stdint.h"
  6. 在 cmd 窗口中运行pip install pycrypto(可能需要管理员权限)
于 2020-09-25T02:47:00.450 回答
0

对我来说,这解决了它:

使用 Python 2,我有

sudo apt-get install python-dev  \
     build-essential libssl-dev libffi-dev \
     libxml2-dev libxslt1-dev zlib1g-dev \
     ...

使用 Python 3,我需要

sudo apt-get install python3 python-dev python3-dev \
     build-essential libssl-dev libffi-dev \
     ...

安装python-dev python3-dev为我修复它!

于 2020-04-17T07:22:24.553 回答