关于python:如何在Windows上安装PyCrypto?

How do I install PyCrypto on Windows?

我已经阅读了所有其他Google来源和SO线程,但没有任何效果。

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

因此,我安装了MinGW,并将其作为选择的编译器安装在安装线上。 但随后出现错误"RuntimeError: chmod error".

我该如何解决这个问题? 我试过使用pip,它给出相同的结果。 我找到了一个预构建的PyCrypto 2.3二进制文件并进行了安装,但是在系统上找不到该文件(无法正常工作)。

有任何想法吗?


如果尚未安装与Python.org分发的Visual Studio二进制文件兼容的C / C ++开发环境,则应坚持仅安装纯Python软件包或可用于Windows二进制文件的软件包。

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

更新:
就像@Udi在下面的注释中建议的那样,以下命令也将安装pycrypto,并且也可以在virtualenv中使用:

1
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


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


经过多年的努力,python最终同意了一种名为wheel的二进制发行版本,该发行版甚至可以在Windows上安装二进制扩展名,而无需使用简单的pip install packagename编译器。列出了热门软件包及其状态。 Pycrypto还不存在,例如lxml,PySide和Scrapy。

2015年11月编辑:pip uninstall pycryptopip install pycryptodome。它是具有新功能的pycrypto叉子,并且支持滚轮。它替代了pycrypto,因此现有代码将继续起作用(请参见https://pycryptodome.readthedocs.org/en/latest/src/examples.html)


对于VS2010:

1
SET VS90COMNTOOLS=%VS100COMNTOOLS%

对于VS2012:

1
SET VS90COMNTOOLS=%VS110COMNTOOLS%

然后致电:

1
pip install pyCrypto


一般来说

vcvarsall.bat是Visual C ++编译器的一部分,您需要安装xx0来尝试安装。如果您的Python是使用Visual Studio工具链编译的,甚至不要尝试处理MingGW,反之亦然。甚至Microsoft工具链的版本也很重要。用VS 2008编译的Python不能与用VS 2010编译的扩展一起使用!

您必须使用与Python版本相同的编译器来编译PyCrypto。 Google的"无法找到vcvarsall.bat",因为这是问题的根源,这是在Windows上编译Python扩展的一个非常普遍的问题。

在使用此链接的任何系统上,要获得正确的信息,都需要大量的信息和大量的阅读。

当心使用Visual Studio 2010或不使用Visual Studio 2008

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

Be careful if you do this. Python 2.6 and 2.7 from python.org are
built with Visual Studio 2008 compilers. You will need to link with
the same CRT (msvcr90.dll) as Python.

Visual Studio 2010 Express links with the wrong CRT version:
msvcr100.dll.

If you do this, you must also re-build Python with Visual Studio 2010
Express. You cannot use the standard Python binary installer for
Windows. Nor can you use any C/C++ extensions built with a different
compiler than Visual Studio 2010 (Express).

意见:这是我放弃Windows从事OSX的所有重要开发工作的原因之一!


PyCryptodome是PyCrypto的几乎兼容的分支,带有pypi上的Windows轮子。

您可以使用以下简单的方法安装它:

1
pip install pycryptodome

该网站还包含使用Microsoft编译器从源进行构建的说明。


我设法通过使用MinGW32MSYS使pycrypto进行编译。这假定您已安装pipeasy_install

这是我的操作方式:

1)安装MinGW32。为了便于说明,我们假设它已安装在C:\MinGW中。当我建议使用安装程序时,请选择C ++编译器. 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)在搜索栏中,运行MSYS,MSYS终端将打开。对于熟悉Cygwin的人来说,它的工作方式类似。

4)此后,应该在MSYS终端pip install pycrypto内部运行而不会出现错误。


对于那些正在寻找python 3.4的人,我发现了一个可以正常使用的安装程序的git repo。这是x64和x32的直接链接


对于Windows 7:

要在Windows中安装Pycrypto,

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

设置路径= C: Python27 Scripts(即easy_install所在的路径)

然后执行以下命令

easy_install pycrypto

对于Ubuntu:

尝试这个,

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

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

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

然后使用终端执行以下命令:

python setup.py安装

对我有用。希望为所有人服务。


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

第一步是编译mpir以提供快速算法。我已经在gmpy库中记录了使用的过程。可以在sdk_build中找到使用SDK编译器构建mpir的详细说明。

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

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

2)在提示符下,执行" set MSSdk = 1"

3)在提示符下,执行" set DISTUTILS_USE_SDK = 1"

假设C代码没有其他问题,这应该可以使" python setup.py install"成功。但我隐约记得,我必须编辑几个PyCrypto文件才能启用mpir和查找mpir库,但是目前我没有Windows系统。我将需要几天的时间来重新创建这些步骤。如果到那时还没有报告成功,我将发布PyCrypto步骤。这些步骤将假定您能够编译mpir。

我希望这有帮助。


So I install MinGW and tack that on the install line as the compiler
of choice. But then I get the error"RuntimeError: chmod error".

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

How in the world do I get around this?

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

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

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

尝试仅使用:

1
pip install pycryptodome

要么:

1
pip install pycryptodomex

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


  • 转到"适用于Python 2.7的Microsoft Visual C ++编译器",然后根据"系统要求"继续操作(这是我按照以下步骤进行的工作)。

  • 安装setuptools(Python需要setuptools 6.0或更高版本才能自动检测此编译器软件包)
    可以通过:pip install setuptools
    或从中下载" Setuptools引导安装程序"源,将此文件在文件系统中的某些位置另存为" ez_python.py",并使用以下命令安装:python ez_python.py

  • 安装滚轮(建议使用滚轮来生产预构建的二进制软件包)。您可以使用以下命令进行安装:pip install wheel

  • 打开Windows提升的命令提示符cmd.exe(带有"以管理员身份运行"),为所有用户安装"适用于Python 2.7的Microsoft Visual C ++编译器"。您可以使用以下命令来这样做:msiexec / i C:\users\jozko\download\VCForPython27.msi ALLUSERS=1仅使用您自己的文件路径:msiexec /i ALLUSERS=1

  • 现在您应该能够使用以下命令安装pycrypto:pip install pycrypto


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


    如果您使用的是Windows,并且正在努力安装Pycrypcto,请使用:
    pip安装pycryptodome。
    它像奇迹一样运作,比起进行大量的配置和调整,它将使您的生活更加轻松。


    我的答案可能与这里提到的问题无关,但是我对Python 3.4遇到了同样的问题,其中Crypto.Cipher不是有效的导入。因此,我尝试安装PyCrypto并遇到问题。

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

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

    从Crypto.Cipher导入AES


    So I install MinGW and tack that on the install line as the compiler of choice. But then I get the error"RuntimeError: chmod error".

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

    enter image description here

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

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

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


    由于奇怪的法律原因,二进制文件无法正常发布。空隙空间通常是最好的第二个来源。但是由于相当长的一段时间,voidspace维护程序没有更新。
    使用[https://www.dropbox.com/s/n6rckn0k6u4nqke/pycrypto-2.6.1.zip?dl=0]中的压缩文件


    我有Pycharm用于python。

  • 转到pycharm -> file -> setting -> project interpreter

  • 单击 +

  • 搜索"pycrypto"并安装软件包

  • 注意:如果您尚未安装"适用于Python 2.7的Microsoft Visual C ++编译器",则它将提示安装,一旦安装完成,请尝试上述步骤,即可正常工作。


    步骤1:从安装Visual C ++ 2010 Express
    这里。

    (请勿安装Microsoft Visual Studio 2010 Service Pack 1)

    步骤2:从"控制面板程序和功能"中删除所有Microsoft Visual C ++ 2010可再发行组件包。如果您不这样做,则安装将失败,并显示模糊的"安装过程中出现致命错误"错误。

    步骤3:从此处安装适用于Visual Studio 2010(v7.1)的Windows SDK的脱机版本。
    这是64位扩展所必需的。 Windows内置了对Pismo等ISO的安装。

    步骤4:您需要使用Pismo File Mount Audit Package安装ISO文件。从这里下载Pismo

    步骤5:右键点击下载的ISO文件,然后选择Pismo挂载。之后,安装Setup SDKSetup.exe而不是setup.exe。

    步骤6a:在C: Program Files(x86) Microsoft Visual Studio 10.0 VC bin amd64中创建vcvars64.bat文件,方法是将目录更改为C: Program Files(x86) Microsoft Visual Studio version VC 命令提示符。
    在命令提示符下键入命令:
    <5233>

    步骤6b:
    要为针对x86平台的64位命令行构建配置此"命令提示符"窗口,请在命令提示符下输入:
    vcvarsall x86单击此处获取更多选项。

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