pycrypto安装:配置错误:无法运行C编译程序

7
请温柔地对待我。我在网站上搜索过,知道有另一个答案与这个问题完全相同,但那里发布的答案对我并不起作用。
我正在尝试安装“pycrypto”,以便使“paramiko”正常工作。“Paramiko”由于缺少“pycrypto”模块而失败。我已经尝试使用“pip install pycrypto”进行安装,成功了,但并没有解决问题。
我已经尝试安装“pycrypto”的二进制版本,但也没有解决问题。
现在我正在尝试构建“pycrypto”。我在我的计算机上安装了“cygwin64”和“mingw”。可以达到最远进程的方法是:
python setup.py build --compiler=mingw32

这会导致一个错误,

checking whether we are cross compiling... configure: error: in `/cygdrive/c/Python27/pycrypto-2.6.1':
configure: error: cannot run C compiled programs.

其他答案建议在路径中删除空格。我尝试将路径简化为:
c:\mingw;c:\python2.7;c:\cygwin64\bin

没有改变结果吗?有没有人能提供一个解决方法?谢谢。总体目标是使 paramiko 正常工作。 paramiko 错误为:
ImportError: No module named Crypto.PublicKey
4个回答

7

在我的情况下,/tmp 挂载点使用了 noexec 标志。

对于在Cygwin中的Windows系统,我也会检查挂载点,以及Python2和Python3所需的 vcredist 包等依赖项。详情请见 Errors while building/installing C module for Python 2.7

针对Linux系统的两种解决方案:

  • 使用 exec 标记临时重新挂载(很可能需要 root/sudo 权限)

例如:

sudo mount -o remount,rw,exec /tmp
  • 将构建路径更改为本地挂载点

例如:

mkdir -p ~/python/tmp
pip install --build ~/python/tmp pycrypto

注意:值得看一下其他的答案:

  • 验证已安装了autoconfpython2-devpython3-dev包。

5

我曾有过类似的问题:

pip install --upgrade subprocess32

失败

configure: error: cannot run C compiled programs

在我们的管理员收紧设置并使用noexec选项安装了tmpfs后,在aws上的解决方案为:

TMPDIR=/var/tmp pip install --upgrade subprocess32

3

我在安装pycrypto时遇到了相同的错误信息(虽然与paramiko无关)。对我来说解决方案是:

yum install autoconf
TMPDIR=/home/$USER/tmp
TMP=$TMPDIR
TEMP=$TMPDIR
export TMPDIR TMP TEMP

然后重新安装:

pip install pocrypto

0

我在Chrubuntu 14.04中遇到了同样的问题,通过首先执行以下操作解决了它:

apt-get install python-dev

...修复与头文件相关的问题,然后:

pip install pycrypto

... 用paramiko解决实际问题。 然而,然后 paramiko 在某个 ecdsa 上出了问题,'pip install paramiko' 表示已经安装了一切,没有问题,因此我执行了 'pip uninstall paramiko',然后是 'pip install paramiko',现在我可以在 python 中无问题地导入 paramiko。

可能有更优雅的方法来解决最后一点,但这对我来说足够好了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接