2

OSX 上的 pip 有点烦人的问题。我尝试安装的 python 程序需要 GCC。

建议的调用是:

env CC=/usr/local/bin/gcc-6 pip install angr 

但是,这会导致错误,建议 OSX 决定改为运行 CLANG:

clang: error: unknown argument: '-malign-double'

这是有道理的,因为:

$ env CC
clang: error: no input files

尽管事实是:

$env 
...
cc=/usr/local/bin/gcc-6
CC=/usr/local/bin/gcc-6

当然我试过:

$CC-/usr/local/bin/gcc-6 
env $CC pip install angr 

但是当然:

$ env $CC pip install angr
gcc-6: error: pip: No such file or directory
gcc-6: error: install: No such file or directory
gcc-6: error: angr: No such file or directory
gcc-6: fatal error: no input files

尽管 env 告诉我只是在运行

$ pip install angr 

结果更多

clang: error: unknown argument: '-malign-double'

那么我在这里错过了什么?OSX 是否讨厌 GCC,或者我在这里错过了一些基本的 shell fu?

4

1 回答 1

4

您的测试命令env $CC pip install angr失败,因为美元符号评估变量并且它有效地运行 gcc 而不是 pip!

Inian 建议的命令env CC="/usr/local/bin/gcc-6 pip install angr"在错误的位置有结束引号,使其成为无操作。

for 的语法env CC=/usr/local/bin/gcc-6 pip install angr是正确的,但 gcc 错误可能出现在 angr 或它所依赖的 26 个包中的任何一个中,例如 ana、bintrees、cachetools、capstone、cooldict、z3-solver...

所以让我们回到clang。查看 github 上的 angr 问题,似乎 z3-solver 的 clang-incompatibility 已于 5 月 10 日修复,即发布此问题一个月后。见:https ://github.com/Z3Prover/z3/issues/1016

所以现在这对我来说适用pip install --upgrade pip于 macOS 10.13 High Sierra + Xcode 9.0.1 上的最新 pip ( ):

pip install --user angr

好吧,上面的命令实际上默认使用二进制包,所以它当然可以工作。10 分钟后,您可以通过卸载所有点子来验证编译路径是否适用于 clang,然后:

pip install --user --no-cache-dir --no-binary :all: angr
于 2017-10-20T16:56:26.200 回答