如何在Windows上安装PyCrypto?

时间:2012-07-10 01:44:52

标签: python windows python-2.7 pycrypto

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

Python 2.7.3 32bit上已安装

Windows 7 64bit。下载,解压缩,然后尝试在"Unable to find vcvarsall.bat".

中安装PyCrypto结果

所以我安装MinGW并在安装行上将其作为首选编译器。但后来我收到错误"RuntimeError: chmod error".

我如何在世界范围内解决这个问题?我尝试过使用pip,它给出了相同的结果。我发现了一个预构建的PyCrypto 2.3二进制文件并安装了它,但它在系统上找不到(不工作)。

有什么想法吗?

19 个答案:

答案 0 :(得分:179)

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

幸运的是,有适用于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

请注意从this list

中为您的设置选择相关链接

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

答案 1 :(得分:32)

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

答案 2 :(得分:22)

经过多年和多年,python最终同意了一个名为wheel的二进制分发版,它允许在Windows上安装甚至二进制扩展,而不需要使用简单pip install packagename的编译器。有list of popular packages个状态。 Pycrypto还没有,但是例如lxml,PySide和Scrapy。

2015年11月编辑pip uninstall pycrypto&amp; pip install pycryptodome。它是一个pycrypto叉,具有新功能,支持滚轮。它取代pycrypto,因此现有代码将继续有效(请参阅https://pycryptodome.readthedocs.org/en/latest/src/examples.html

答案 3 :(得分:18)

一般

vcvarsall.bat是Visual C ++编译器的一部分,您需要安装它以安装您要安装的内容。如果您的Python是使用Visual Studio工具链编译的,那么甚至不要尝试处理MingGW,反之亦然。即使Microsoft工具链的版本也很重要。使用VS 2008编译的Python不适用于使用VS 2010编译的扩展!

你必须使用编译Python版本的相同编译器编译PyCrypto。谷歌的“无法找到vcvarsall.bat”,因为这是您问题的根源,it is a very common problem with compiling Python extensions on Windows.

There is a lot of information and a lot to read to get this right on whatever system you are on with this link.

谨防使用Visual Studio 2010或不使用Visual Studio 2008

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

  

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

     

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

     

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

意见:这是我放弃Windows进行OSX所有认真开发工作的一个原因!

答案 4 :(得分:18)

对于VS2010:

SET VS90COMNTOOLS=%VS100COMNTOOLS%

对于VS2012:

SET VS90COMNTOOLS=%VS110COMNTOOLS%

然后致电:

pip install pyCrypto 

答案 5 :(得分:6)

我已设法使用pycryptoMinGW32来编译MSYS。这假设您安装了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%。如果您不熟悉,this article非常有帮助。

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

4)在此之后,MSYS终端pip install pycrypto内的运行应该没有错误。

答案 6 :(得分:5)

对于Windows 7:

在Windows中安装Pycrypto,

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

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

然后执行以下操作,

easy_install pycrypto

对于Ubuntu:

试试这个,

从&#34; https://pypi.python.org/pypi/pycrypto&#34;

下载Pycrypto

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

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

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

python setup.py install

它为我工作。希望适用于所有人..

答案 7 :(得分:5)

对于那些寻找python 3.4的人,我找到了一个带有安装程序的git repo。以下是x64x32

的直接链接

答案 8 :(得分:4)

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

第一步是编译mpir以提供快速算术。我已经记录了我在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。

我希望这会有所帮助。

答案 9 :(得分:3)

  

所以我安装MinGW并将其作为编译器安装在安装行上   选择。但后来我得到了错误&#34; RuntimeError:chmod error&#34;。

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

  

我如何在世界范围内解决这个问题?

解决方案

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

(N.B:注意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`

答案 10 :(得分:3)

  1. 转到"Microsoft Visual C++ Compiler for Python 2.7"并继续根据“系统要求”(这是我在下面的步骤中所做的工作)。

  2. 安装setuptools (Python需要setuptools 6.0或更高版本才能自动检测此编译器包) pip install setuptools 下载“Setuptools bootstrapping installer”source from,将此文件保存在文件系统中的“ez_python.py”并安装:python ez_python.py

  3. 安装滚轮(建议使用滚轮生成预先构建的二进制包)。您可以使用以下内容进行安装:pip install wheel

  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. 现在您应该能够安装pycrypto:pip install pycrypto

答案 11 :(得分:3)

尝试使用:

pip install pycryptodomex

或:

$check_result = $wpdb->get_var("SELECT COUNT(ID) FROM $table_name3  WHERE IF('$admin_Name' != '', admin_id = '$admin_ID_result', 1=1) AND
                                        IF('$client_Name' != '', client_id = '$client_ID_result', 1=1) AND IF('$date' != '' && '$date2' == '', DATE(time) BETWEEN '$date1' AND #12/31/2050#, 1=1)
                                        AND IF('$date2' != '' && '$date' == '', DATE(time) BETWEEN #12/31/2000# AND '$date2', 1=1)
                                        AND IF('$date' != '' && '$date2' != '', DATE(time) BETWEEN '$date1' AND '$date2', 1=1)");

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

答案 12 :(得分:2)

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

答案 13 :(得分:1)

  

所以我安装MinGW并在安装行上将其作为首选编译器。但后来我收到错误“RuntimeError:chmod error”。

您需要在MinGW下安装msys包

enter image description here

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

  • C:\MinGW\bin
  • C:\MinGW\msys\1.0\bin [这是您可以找到chmod可执行文件的地方]

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

答案 14 :(得分:1)

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

经过一些研究后我发现你应该使用 pycryptodome

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

来自 Crypto.Cipher 导入AES

答案 15 :(得分:1)

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

答案 16 :(得分:0)

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

中的zip

答案 17 :(得分:0)

步骤1:从中安装Visual C ++ 2010 Express here

(不要安装Microsoft Visual Studio 2010 Service Pack 1)

步骤2:从“控制面板”\“程序和功能”中删除所有Microsoft Visual C ++ 2010可再发行组件包。如果你不这样做,那么在安装过程中,安装将会失败并且会出现一个模糊的错误&#34;致命错误。错误。

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

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

下载Pismo

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

步骤6a:通过将目录更改为C:\ Program Files(x86)\ Microsoft Visual Studio版本,在C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ VC \ bin \ amd64中创建vcvars64.bat文件VC \在命令提示符下。 在命令提示符下键入命令: cd C:\Program Files (x86)\Microsoft Visual Studio version\VC\r

步骤6b: 要为面向x86平台的64位命令行构建配置此命令提示符窗口,请在命令提示符下输入: vcvarsall x86点击here了解更多选项。

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

答案 18 :(得分:0)

我有用于python的Pycharm。

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

  2. 单击 +

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

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