如何在Windows上安装PyCrypto?

我已经读过所有其他谷歌源和SO线程,没有任何工作。

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

所以我安装MinGW,并在安装线上作为select的编译器。 但是,然后我得到错误"RuntimeError: chmod error".

我怎样才能解决这个问题? 我已经尝试使用点,这给出了相同的结果。 我发现了一个预编译的PyCrypto 2.3二进制文件,并安装了它,但在系统上找不到(不工作)。

有任何想法吗?

如果您还没有安装与Python.org分发的Visual Studio二进制文件兼容的C / C ++开发环境,那么您应该坚持只安装可用的Windows二进制文件的纯Python包或软件包。

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

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

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

请注意从这个列表中select您的设置的相关链接

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

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

一般来说

vcvarsall.bat是Visual C ++编译器的一部分,您需要安装您正在尝试安装的内容。 如果你的Python是用Visual Studio工具链编译的,甚至不要去处理MingGW,反之亦然。 即使是微软工具链的版本也很重要。 使用VS 2008编译的Python将无法与使用VS 2010编译的扩展一起使用!

你必须用编译Python的版本编译PyCrypto。 谷歌为“无法findvcvarsall.bat”,因为这是你的问题的根源, 这是编译Windows上的Python扩展一个非常常见的问题。

有很多的信息和大量的阅读来得到这个权利,无论你在这个链接的任何系统。

注意使用Visual Studio 2010或不使用Visual Studio 2008

据我所知,以下情况依然如此。 这篇文章发表在2010年6月的上面的链接中,指的是试图用VS 2010 Express构build扩展与python.org上提供的Python安装程序。

如果你这样做要小心。 python.org中的Python 2.6和2.7是使用Visual Studio 2008编译器构build的。 您将需要与Python相同的CRT(msvcr90.dll)。

Visual Studio 2010 Express与错误的CRT版本链接:msvcr100.dll。

如果你这样做,你还必须用Visual Studio 2010 Express重新构buildPython。 您不能使用Windows的标准Python二进制安装程序。 您也不能使用任何使用不同于Visual Studio 2010(Express)的编译器构build的C / C ++扩展。

意见:这是我放弃Windows所有认真开发OSX的原因之一!

对于VS2010:

 SET VS90COMNTOOLS=%VS100COMNTOOLS% 

对于VS2012:

 SET VS90COMNTOOLS=%VS110COMNTOOLS% 

然后通话:

 pip install pyCrypto 

多年以后 ,python终于同意了一个名为wheel的二进制分布,它允许在Windows上安装二进制扩展,而无需使用简单的pip install packagename进行编译。 有一个stream行的包与他们的状态列表 。 Pycrypto还没有,但是例如lxml,PySide和Scrapy。

2015年11月编辑pip uninstall pycryptopip install pycryptodome 。 这是一个新的function,它支持轮的pycrypto叉。 它取代了pycrypto ,现有的代码将继续工作(请参阅https://pycryptodome.readthedocs.org/en/latest/src/examples.html

PyCryptodome是PyCrypto的一个几乎兼容的叉子,在pypi上有Windows轮子。

你可以用一个简单的方法安装它:

 pip install pycryptodome 

该网站还包括使用Microsoft编译器从源代码构build它的说明。

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

以下是我如何做到的:

1)安装MinGW32 。 为了这个解释,我们假设它安装在C:\MinGW 。 当使用我推荐的安装程序时,请selectC ++编译器. MSYS应该与MinGW安装

2)添加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你的%PATH% 。 如果你不熟悉, 这篇文章是非常有帮助的。

3)从search栏中运行msys ,MSYSterminal将打开。 对于那些熟悉Cygwin ,它的工作原理与此类似。

4)从MSYSterminal内pip install pycrypto应该运行没有错误之后。

对于那些你正在寻找Python 3.4我find了一个安装程序,只是工作的git回购 。 这里是x64和x32的直接链接

可以使用Windows 7 SDK工具包来构buildPyCrypto。 有两个版本的Windows 7 SDK。 原始版本(用于.Net 3.5)包括VS 2008命令行编译器。 可以安装32位和64位编译器。

第一步是编译mpir以提供快速算术。 我已经logging了我在gmpy库中使用的过程。 有关使用SDK编译器构buildmpir的详细说明,请参见sdk_build

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

1)根据需要运行vcvars32.bat或vcvars64.bat。

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

3)在提示符下执行“set DISTUTILS_USE_SDK = 1”

这应该允许“python setup.py install”成功,假设C代码没有其他问题。 但我记得我不得不编辑几个PyCrypto文件来启用mpir并findmpir库,但是现在我没有Windows系统。 这将是几天之后,我才有时间重新创build步骤。 如果您之前没有报告成功,我将发布PyCrypto步骤。 这些步骤将假定您能够编译mpir。

我希望这有帮助。

对于Windows 7:

要在Windows中安装Pycrypto,

在命令提示符下试试这个,

设置path= C:\ Python27 \ Scripts(即easy_install所在的path)

然后执行以下操作,

easy_install pycrypto

对于Ubuntu:

尝试这个,

从“ https://pypi.python.org/pypi/pycrypto ”下载Pycrypto

然后改变你的当前path使用你的terminal下载path和用户应该是根:

例如:root @ xyz-virtual-machine:〜/ pycrypto-2.6.1#

然后使用terminal执行以下操作:

python setup.py安装

这对我有用。 希望适用于所有..

所以我安装MinGW,并在安装线上作为select的编译器。 但是,然后我得到错误“RuntimeError:chmod错误”。

出现此错误"RuntimeError: chmod error" ,因为安装脚本没有findchmod命令。

我怎样才能解决这个问题?

您只需要将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` 

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

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

  2. 通过 pip install setuptools 下载“Setuptools bootstrapping installer”源文件安装setuptools (需要setuptools 6.0或更高版本才能自动检测到此编译器软件包),将此文件somwhere保存为文件系统“ez_python.py”,然后安装: python ez_python.py

  3. 安装车轮 (build议使用车轮来生产预先构build的二进制包)。 你可以安装它: pip install wheel

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

  5. 现在你应该可以安装pycrypto: pip install pycrypto

所以我安装MinGW,并在安装线上作为select的编译器。 但是,然后我得到错误“RuntimeError:chmod错误”。

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

在这里输入图像描述

并在PATH envvariables中添加以下条目。

  • C:\MinGW\bin
  • C:\MinGW\msys\1.0\bin [这是您将findchmod可执行文件的位置]

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

由于奇怪的法律原因,二进制文件不是正常的方式发布。 Voidspace通常是最好的第二来源。 但是自从相当一段时间以来,voidspace维护者并没有更新。 使用[ https://www.dropbox.com/s/n6rckn0k6u4nqke/pycrypto-2.6.1.zip?dl=0%5D

尝试使用:

 pip install pycryptodome 

要么:

 pip install pycryptodomex 

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

我的答案可能与这里提到的问题没有关系,但是我对Python 3.4也有同样的问题,其中Crypto.Cipher不是有效的导入。 所以我尝试安装PyCrypto并进入问题。

经过一些研究,我发现3.4应该使用pycryptodome

我使用pycharm安装pycryptodome,我很好。

Crypto.Cipher导入AES