根据之前MacOS安装plyvel的方法,已经homebrew安装好了leveldb,现在安装plyvel总是出错。报错“command '/usr/bin/clang' failed with exit code 1”。
$ pip3 install plyvel
Looking in indexes: https://mirrors.aliyun.com/pypi/simple/
Collecting plyvel
Downloading https://mirrors.aliyun.com/pypi/packages/4b/b0/23f0cc21c943355fc5d49f1933e97812269d7a865daef5b9758b62902d46/plyvel-1.5.1.tar.gz (200 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 200.1/200.1 kB 3.0 MB/s eta 0:00:00
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
Building wheels for collected packages: plyvel
Building wheel for plyvel (pyproject.toml) ... error
error: subprocess-exited-with-error
× Building wheel for plyvel (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [19 lines of output]
running bdist_wheel
running build
running build_py
creating build
creating build/lib.macosx-10.9-universal2-cpython-311
creating build/lib.macosx-10.9-universal2-cpython-311/plyvel
copying plyvel/_version.py -> build/lib.macosx-10.9-universal2-cpython-311/plyvel
copying plyvel/__init__.py -> build/lib.macosx-10.9-universal2-cpython-311/plyvel
running build_ext
building 'plyvel._plyvel' extension
creating build/temp.macosx-10.9-universal2-cpython-311
creating build/temp.macosx-10.9-universal2-cpython-311/plyvel
clang -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -arch arm64 -arch x86_64 -g -I/Library/Frameworks/Python.framework/Versions/3.11/include/python3.11 -c plyvel/_plyvel.cpp -o build/temp.macosx-10.9-universal2-cpython-311/plyvel/_plyvel.o -Wall -g -x c++ -std=c++11 -stdlib=libc++
clang: warning: '-x c++' after last input file has no effect [-Wunused-command-line-argument]
plyvel/_plyvel.cpp:1227:10: fatal error: 'leveldb/db.h' file not found
#include "leveldb/db.h"
^~~~~~~~~~~~~~
1 error generated.
error: command '/usr/bin/clang' failed with exit code 1
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for plyvel
Failed to build plyvel
ERROR: Could not build wheels for plyvel, which is required to install pyproject.toml-based projects
[notice] A new release of pip is available: 23.1.2 -> 23.3.2
[notice] To update, run: pip3 install --upgrade pip
妹岛
你这个错误的本质是“fatal error: 'leveldb/db.h' file not found”
首先你需要保证你安装了Apple的命令行工具,可能你已经安装了,无妨,运行一下如下代码就可以知道是否安装了:
xcode-select --install
如果安装了就会告诉你安装了,如果没安装,就会帮你安装。
如果依然报错,我相信,问题的核心根本是"Mac M1/M2"这类苹果芯片的MacOS系统,在安装plyvel时报错。
Mac M1/M2/M3 安装 plyvel 报错的解决方案如下:
在系统环境变量描述文件中添加如下内容,Mac M1/M2/M3 这些的系统环境变量描述应该已经不是bashrc了而是~/.zshrc了,"sudo vim ~/.zshrc"即可:
export LIBRARY_PATH="$LIBRARY_PATH:$(brew --prefix)/lib" export CPATH="$CPATH:$(brew --prefix)/include"
加上上面两行后,然后关闭终端,重新打开终端,运行pip命令安装plyvel即可。