如何在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 pycrypto
& pip install pycryptodome
。 这是一个新的function,它支持轮的pycrypto
叉。 它取代了pycrypto
,现有的代码将继续工作(请参阅https://pycryptodome.readthedocs.org/en/latest/src/examples.html )
PyCryptodome是PyCrypto的一个几乎兼容的叉子,在pypi上有Windows轮子。
你可以用一个简单的方法安装它:
pip install pycryptodome
该网站还包括使用Microsoft编译器从源代码构build它的说明。
我设法使用MinGW32
和MSYS
来编译pycrypto
。 这假定你已经安装了pip
或easy_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 ++编译器。
-
转到“ Microsoft Visual C ++编译器for Python 2.7 ”,并继续基于“系统要求”(这是我所做的将下面的步骤放在一起)。
-
通过
pip install setuptools
或下载“Setuptools bootstrapping installer”源文件安装setuptools (需要setuptools 6.0或更高版本才能自动检测到此编译器软件包),将此文件somwhere保存为文件系统“ez_python.py”,然后安装:python ez_python.py
-
安装车轮 (build议使用车轮来生产预先构build的二进制包)。 你可以安装它:
pip install wheel
-
打开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
-
现在你应该可以安装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