我已经阅读了所有其他谷歌来源和SO线程,没有任何工作。
Python 2.7.3 32bit
上已安装 Windows 7 64bit
。下载,解压缩,然后尝试在"Unable to find vcvarsall.bat".
所以我安装MinGW并在安装行上将其作为首选编译器。但后来我收到错误"RuntimeError: chmod error".
我如何在世界范围内解决这个问题?我尝试过使用pip,它给出了相同的结果。我发现了一个预构建的PyCrypto 2.3二进制文件并安装了它,但它在系统上找不到(不工作)。
有什么想法吗?
答案 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.
据我所知,以下情况仍属实。这是在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)
我已设法使用pycrypto
和MinGW32
来编译MSYS
。这假设您安装了pip
或easy_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)
答案 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)
转到"Microsoft Visual C++ Compiler for Python 2.7"并继续根据“系统要求”(这是我在下面的步骤中所做的工作)。
安装setuptools (Python需要setuptools 6.0或更高版本才能自动检测此编译器包)
: pip install setuptools
或下载“Setuptools bootstrapping installer”source from,将此文件保存在文件系统中的“ez_python.py”并安装:python ez_python.py
安装滚轮(建议使用滚轮生成预先构建的二进制包)。您可以使用以下内容进行安装:pip install wheel
为所有用户打开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
现在您应该能够安装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)");
答案 12 :(得分:2)
这可能不是最佳解决方案,但您可以从MS下载并安装免费的Visual C ++ Express软件包。这将为您提供编译PyCrypto代码所需的C ++编译器。
答案 13 :(得分:1)
所以我安装MinGW并在安装行上将其作为首选编译器。但后来我收到错误“RuntimeError:chmod error”。
您需要在MinGW下安装msys包
并在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。
转到pycharm -> file -> setting -> project interpreter
单击 +
搜索"pycrypto"
并安装软件包
注意::如果您未安装“适用于Python 2.7的Microsoft Visual C ++编译器”,则它将提示安装,一旦安装完成,请尝试上述步骤即可正常工作。