如何在 Windows 上安装 PyCrypto?

我已经阅读了所有其他谷歌资源和 SO 线程,没有工作。

安装在 Windows 7 64bit上的 Python 2.7.3 32bit。下载、解压缩,然后尝试在 "Unable to find vcvarsall.bat".中安装 PyCrypto 结果

所以我安装了 MinGW,并把它作为编译器的选择添加到安装行中。但是我得到了错误 "RuntimeError: chmod error".

我到底该怎么做?我试过使用 pip,得到了同样的结果。我找到了一个预先构建的 PyCrypto 2.3二进制文件并安装了它,但是在系统中找不到它(不工作)。

有什么想法吗?

366795 次浏览

这可能不是最佳解决方案,但是您可以从 MS 下载并安装免费的 Visual C + + Express 包。这将为您提供编译 PyCrypto 代码所需的 C + + 编译器。

一般来说

vcvarsall.bat是 Visual C + + 编译器的一部分,你需要它来安装你想要安装的东西。如果您的 Python 是使用 VisualStudio 工具链编译的,那么甚至不要尝试处理 MingGW,反之亦然。甚至微软工具链中的 版本也很重要。使用 VS2008编译的 Python 无法与使用 VS2010编译的扩展一起工作!

您必须使用与编译 Python 版本时相同的编译器来编译 PyCrypto。谷歌的 “找不到 vcvarsall.bat”,因为这是你的问题的根源,在 Windows 上编译 Python 扩展是一个非常常见的问题。

有很多信息和很多阅读,以获得这个权利在任何系统上你与这个链接。

当心使用 VisualStudio2010或不使用 VisualStudio2008

据我所知,以下内容仍然正确。这是2010年6月在上面的链接中发布的,指的是尝试使用 VS 2010 Express 针对 Python.org 上提供的 Python 安装程序构建扩展。

这样做时要小心,Python.org 中的 Python 2.6和2.7是 使用 VisualStudio2008编译器构建 与 Python 相同的 CRT (msvcr90.dll)。

Visual Studio 2010 Express 链接错误的 CRT 版本: Msvcr100.dll.

如果这样做,还必须使用 VisualStudio2010重新构建 Python 不能使用标准的 Python 二进制安装程序 你也不能使用任何 C/C + + 扩展 编译器比 VisualStudio2010(Express)。

观点: 这是一个原因,我放弃 Windows 的所有严重的开发工作为 OSX!

如果你还没有安装一个 C/C + + 开发环境,并且这个环境与 Python.org 发布的 Visual Studio 二进制文件兼容,那么你应该坚持只安装纯 Python 包或者 Windows 二进制文件可用的包。

幸运的是,Windows 上有可用的 PyCrypto 二进制文件: Http://www.voidspace.org.uk/python/modules.shtml#pycrypto

更新:
正如@Udi 在下面的注释中所建议的那样,下面的命令也安装了 pycrypto,也可以在 virtualenv中使用:

easy_install http://www.voidspace.org.uk/python/pycrypto-2.6.1/pycrypto-2.6.1.win32-py2.7.exe

请注意从 这份名单中选择相关的设置链接

如果您正在寻找 Python 3.5的构建,请参阅 Python 3.5上的 PyCrypto

可以使用 Windows7SDK 工具包构建 PyCrypto。Windows7SDK 有两个版本。原来的版本(供。Net 3.5)包括 VS 2008命令行编译器。可以安装32位和64位编译器。

第一步是编译 海洋生物以提供快速算术。我已经记录了我在 Gmpy库中使用的过程。使用 SDK 编译器构建 mpir 的详细说明可以在 Sdk _ build中找到

从 DOS 提示符使用 SDK 编译器的关键步骤是:

1)适当地运行 vcvars32.bat 或 vcvars64.bat。

2)在提示符下执行“ set MSSdk = 1”

3)在提示符下执行“ set DISTUTILS _ USE _ SDK = 1”

这应该允许“ python setup.py install”成功,前提是 C 代码没有其他问题。但是我依稀记得我必须编辑一些 PyCrypto 文件来启用 mpir 并找到 mpir 库,但是我现在没有启动我的 Windows 系统。再过几天我就有时间重建这些步骤了。如果到那时你还没有报告成功,我会发布 PyCrypto 步骤。这些步骤将假设您能够编译 mpir。

希望这个能帮上忙。

VS2010:

SET VS90COMNTOOLS=%VS100COMNTOOLS%

VS2012:

SET VS90COMNTOOLS=%VS110COMNTOOLS%

然后打电话:

pip install pyCrypto

我已经设法使用 MinGW32MSYS编译了 pycrypto。这假设您已经安装了 pipeasy_install

我是这么做的:

1)安装 MinGW32。为了便于解释,我们假设它安装在 C:\MinGW中。当使用安装程序时,我建议选择 C + + 编译器 . MSYS 应该与 MinGW一起安装

2)在你的 %PATH%中加入 c:\mingw\bin,c:\mingw\mingw32\bin,C:\MinGW\msys\1.0, c:\mingw\msys\1.0\bin and c:\mingw\msys\1.0\sbin。如果你不熟悉,这篇文章是非常有帮助的。

3)从搜索栏,运行 msys和 MSYS 终端将打开。对于那些熟悉 Cygwin的人来说,它以类似的方式工作。

4)从内部的 MSYS 终端 pip install pycrypto应运行后,没有错误。

所以我安装了 MinGW 并把它作为编译器粘贴在安装行上 但是我得到了错误“ RuntimeError: chmod error”。

发生此错误 "RuntimeError: chmod error"是因为安装脚本没有找到 chmod命令。

我到底该怎么做?

解决方案

你只需要 将 MSYS 二进制文件添加到 PATH 并重新运行安装脚本

(注意: MinGW 附带 MSYS)

例子

例如,如果我们在文件夹 C:\<..>\pycrypto-2.6.1\dist\pycrypto-2.6.1>

C:\.....>set PATH=C:\MinGW\msys\1.0\bin;%PATH%
C:\.....> python setup.py install

可选项: 在重新运行脚本之前可能需要进行清理:

`C:\<..>\pycrypto-2.6.1\dist\pycrypto-2.6.1> python setup.py clean`

微软最近发布了一个独立的、专用的 Microsoft Visual C + + Python 2.7编译器。如果您正在使用 Python 2.7,只需安装该编译器和 Setuptools 6.0或更高版本,大多数带 C 扩展的包现在就可以轻松编译了。

年复一年 之后,python 最终同意了一个名为 wheel的二进制发行版,该发行版允许在 Windows 上安装二进制扩展,而不需要一个具有简单 pip install packagename的编译器。有一个 流行套餐清单与他们的状态。Pycrypto 还没有出现,但是 lxml、 PySide 和 Scrapy 就是一个例子。

编辑: 2015年11月 : pip uninstall pycrypto & pip install pycryptodome。这是一个 pycrypto叉具有新的功能,它支持车轮。它取代了 pycrypto,因此现有的代码将继续工作(参见 https://pycryptodome.readthedocs.org/en/latest/src/examples.html)

对于 Windows7:

要在 Windows 中安装 Pycrypto,

在命令提示符中尝试此操作,

Set path = C: Python27脚本(即 easy _ install 所在的路径)

然后执行以下步骤,

Easy _ install pycrypto

对于 Ubuntu:

试试这个,

从“ https://pypi.python.org/pypi/pycrypto”下载加密码

然后使用终端将当前路径更改为下载路径,用户应为 root 用户:

例如: root@xyz-Virtual-machine: ~/pycrypto-2.6.1 #

然后使用终端执行以下操作:

Python setup.py 安装

这对我有用,希望对所有人都有用。

所以我安装了 MinGW,并把它作为编译器的选择添加到安装行中。但是我得到了错误“ RuntimeError: chmod error”。

您需要在 MinGW 下安装 msys 软件包

enter image description here

并在 PATH env 变量中添加以下条目。

  • C:\MinGW\bin
  • C:\MinGW\msys\1.0\bin[在这里可以找到 chmod 可执行文件]

然后从正常命令提示符运行命令。

对于那些正在寻找 python 3.4的人来说,我找到了一个带有可以正常工作的安装程序的 回收。下面是 X64X32的直接链接

PyCryptoome 是一个几乎兼容的 PyCrypto 分支,在 皮皮上提供了 Windows 轮子。

你可以用一个简单的:

pip install pycryptodome

该网站包括指示,建立与微软编译器的来源也。

  1. 转到 MicrosoftVisualC + + Python 编译器2.7 并继续基于“系统需求”(这是我将下面的步骤放在一起所做的)。

  2. 安装 setuptools (Python 需要 setuptools 6.0或更高版本来自动检测这个编译器包) 无论是由: pip install setuptools 下载“ Setuptools 引导安装程序”源代码 来自,在文件系统的某处将该文件保存为“ ez _ python.py”,并使用: python ez_python.py

    进行安装
  3. 安装车轮 (推荐使用车轮生成预构建的二进制包)

  4. 为所有用户打开 Windows 升级命令提示 cmd.exe (以“作为管理员运行”)到 安装“ Microsoft Visual C + + 编译器 for Python 2.7”。您可以使用以下命令来完成此操作: msiexec/i C:\users\jozko\download\VCForPython27.msi ALLUSERS=1只需使用您自己的路径来生成文件: msiexec /i <path to MSI> ALLUSERS=1

  5. 现在您应该能够使用 pip install pycrypto安装 pycrypto 了

试着只用:

pip install pycryptodome

或:

pip install pycryptodomex

资料来源: https://pypi.python.org/pypi/pycryptodome

我的答案可能与这里提到的问题无关,但是我在 Python 3.4中遇到了同样的问题。密码不是有效进口。因此,我尝试安装 PyCrypto,但遇到了问题。

经过一些研究,我发现与3.4你应该使用 幽灵穹顶

我用魅惑术安装了隐形穹顶,我很厉害。

加密,加密进口 AES

步骤1: 从 这里

(不要安装 MicrosoftVisualStudio2010ServicePack1)

步骤2: 从控制面板程序和特性中删除所有 MicrosoftVisualC + + 2010可再发行包。如果您不这样做,那么安装将会失败,并出现一个模糊的“安装过程中的致命错误”错误。

步骤3: 从 给你安装 Windows SDK 的脱机版本 for Visual Studio 2010(v7.1)。 这是64位扩展所必需的,Windows 已经为像 Pismo 这样的国际标准化组织内置了安装。

步骤4: 您需要使用 Pismo 文件安装审计软件包安装 ISO 文件

步骤5: 右键单击下载的 ISO 文件,选择 mount with Pismo,然后安装 Setup.exe 而不是 Setup.exe。

步骤6a: 在命令提示符下将目录更改为 C: Program Files (x86) Microsoft Visual Studio version VC,从而在 C: Program Files (x86)中创建一个 vcvars64.bat 文件。 在命令提示符下输入命令: cd C:\Program Files (x86)\Microsoft Visual Studio version\VC\r

步骤6b: 若要为目标 x86平台的64位命令行生成配置此命令提示符窗口,请在命令提示符下输入: 单击 给你查看更多选项。

步骤7: 在命令提示符下,输入: C:\Python3X>pip install -U your_wh_file

我有蟒蛇的魅力咒语。

  1. 转到 pycharm -> file -> setting -> project interpreter

  2. 点击 +

  3. 搜索 "pycrypto"并安装软件包

注意: 如果您没有安装“ Microsoft Visual C + + Compiler for Python 2.7”,那么它将提示您安装,一旦安装完成,请尝试以上步骤,它应该可以正常工作。

如果您在 Windows 上并且正在努力安装 Pycrypcto,那么只需使用: 安装密码圆顶。 它工作起来就像一个奇迹,它会让你的生活比尝试做很多配置和调整容易得多。