clang在macos上用pip install失败了

时间:2017-12-05 15:36:12

标签: python pip clang macos-high-sierra

我正在运行pip install scrypt==0.8.0 我收到以下错误:error: command '/usr/bin/clang' failed with exit status 1。 我安装了xcode-select,gcc等。当我尝试cd进入该文件夹时,它不存在并运行clang --version它给了我:

Apple LLVM version 9.0.0 (clang-900.0.38)
Target: x86_64-apple-darwin17.2.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

完整错误:https://pastebin.com/JZW1jRCy

1 个答案:

答案 0 :(得分:2)

嗯......问题似乎在于苹果方面。我能够在High Sierra的Macbook上重现这个问题。我在github上发现了this关于python的其他加密库的讨论以及他们使用的解决方案。

$  env LDFLAGS="-L$(brew --prefix openssl)/lib" CFLAGS="-I$(brew --prefix openssl)/include" pip install scrypt==0.8.0

Scrypt安装没有任何问题,我能够在我的翻译中导入它:

$  python
Python 3.6.3 (default, Oct  4 2017, 06:09:15) 
[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.37)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import scrypt
>>> dir(scrypt)
['ERROR_MESSAGES', 'IS_PY2', 'MAXMEMFRAC_DEFAULT', 'MAXMEM_DEFAULT', 'MAXTIME_DEFAULT', 'MAXTIME_DEFAULT_ENC', 'POINTER', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '__warningregistry__', '_crypto_scrypt', '_ensure_bytes', '_scrypt', '_scryptdec_buf', '_scryptenc_buf', 'c_char_p', 'c_double', 'c_int', 'c_size_t', 'c_uint32', 'c_uint64', 'cdll', 'create_string_buffer', 'decrypt', 'encrypt', 'error', 'hash', 'imp', 'os', 'pointer', 'sys']
>>>

但是,我看到cryptography库描述了替代解决方案here。不幸的是,在使用上述解决方案之后,我无法在本地重现该问题,所以我不能说它是否解决了问题。我建议先通过它,因为它似乎不那么具有侵入性。