错误:命令'gcc'以状态1退出

1 投票
1 回答
4461 浏览
提问于 2025-04-17 22:39

我在64位的Windows 7上安装了Scrapy。当我在命令提示符(CMD)里输入 scrapy startproject tutorial 时,出现了一个错误:

ImportError: No module named `cryptography.hazmat.bindings.openssl.binding`

为了解决这个问题,我想安装pycrypto。当我运行 pip install pycrypto 时,又出现了一个错误:_无法找到vcvarsall.bat_。因为我已经安装了Visual Studio 2010。为了解决这个问题,我安装了mingw32,并设置了环境变量,还关闭了我的杀毒软件,并从 cygwinccompiler.py 中移除了 -mno-cygwin

if self.gcc_version < '4' or is_cygwingcc():
    no_cygwin = ''
else:
    no_cygwin = ' -mno-cygwin'

变成了:

if self.gcc_version < '4' or is_cygwingcc():
    no_cygwin = ''
else:
    no_cygwin = ''

现在我又遇到了一个错误:

error command 'gcc' failed with exit status 1

(我安装的是64位的Python 2.7)

请给我一些指导。

1 个回答

0

最简单的方法就是直接从 http://www.voidspace.org.uk/python/modules.shtml#pycrypto 下载已经编译好的版本。

然后你可以慢慢尝试重新构建 PyCrypto 的 C 扩展:

  • Visual Studio 自带一个 CMD 快捷方式,叫做 vcvarsall.bat。你可以用这个快捷方式打开 cmd.exe,然后在里面运行 pip install
  • (另外一种方法)可以安装 cygwin,而不是 mingw,这样就不用修改 PyCrypto 的构建脚本了。
  • PyCrypto 依赖于 GMP 或 MPIR 来处理大数。Cygwin 已经提供了这些的预编译版本。我相信也有一些基于 Mingw 的项目提供了 GMP 的预编译版本。
  • 你需要获取 PyCrypto 依赖项的预编译二进制文件和头文件,或者自己手动构建它们。

撰写回答