wbolster / plyvel

Plyvel, a fast and feature-rich Python interface to LevelDB
https://plyvel.readthedocs.io/
Other
518 stars 75 forks source link

mac 14.3.1 python 3.10 can not install leveldb/db.h file not found #160

Open fishTsai20 opened 5 months ago

fishTsai20 commented 5 months ago

(venv) MacBook-Pro:atomicals-electrumx isachoi$ CFLAGS='-stdlib=libc++ -std=c++11' pip3 install plyvel --no-cache-dir Collecting plyvel Downloading plyvel-1.5.1.tar.gz (200 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 200.1/200.1 kB 377.2 kB/s eta 0:00:00 Preparing metadata (setup.py) ... done Installing collected packages: plyvel DEPRECATION: plyvel is being installed using the legacy 'setup.py install' method, because it does not have a 'pyproject.toml' and the 'wheel' package is not installed. pip 23.1 will enforce this behaviour change. A possible replacement is to enable the '--use-pep517' option. Discussion can be found at https://github.com/pypa/pip/issues/8559 Running setup.py install for plyvel ... error error: subprocess-exited-with-error

× Running setup.py install for plyvel did not run successfully. │ exit code: 1 ╰─> [21 lines of output] running install /Users/isachoi/Desktop/Chainbase/ethereum-etl/venv/lib/python3.10/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools. warnings.warn( running build running build_py creating build creating build/lib.macosx-10.9-universal2-cpython-310 creating build/lib.macosx-10.9-universal2-cpython-310/plyvel copying plyvel/_version.py -> build/lib.macosx-10.9-universal2-cpython-310/plyvel copying plyvel/init.py -> build/lib.macosx-10.9-universal2-cpython-310/plyvel running build_ext building 'plyvel._plyvel' extension creating build/temp.macosx-10.9-universal2-cpython-310 creating build/temp.macosx-10.9-universal2-cpython-310/plyvel clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -arch arm64 -arch x86_64 -g -stdlib=libc++ -std=c++11 -I/Users/isachoi/Desktop/Chainbase/ethereum-etl/venv/include -I/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10 -c plyvel/_plyvel.cpp -o build/temp.macosx-10.9-universal2-cpython-310/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: legacy-install-failure

× Encountered error while trying to install package. ╰─> plyvel

note: This is an issue with the package mentioned above, not pip. hint: See above for output from the failure.

[notice] A new release of pip available: 22.3.1 -> 24.0 [notice] To update, run: pip install --upgrade pip

fishTsai20 commented 5 months ago

I solve this problem use below cmd CFLAGS="-I/opt/homebrew/include -L/opt/homebrew/lib" pip3 install --upgrade --force-reinstall plyvel but I meet another problem

 python3 -c 'import plyvel'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/Users/isachoi/Desktop/Chainbase/ethereum-etl/venv/lib/python3.10/site-packages/plyvel/__init__.py", line 6, in <module>
    from ._plyvel import (  # noqa
ImportError: dlopen(/Users/isachoi/Desktop/Chainbase/ethereum-etl/venv/lib/python3.10/site-packages/plyvel/_plyvel.cpython-310-darwin.so, 0x0002): symbol not found in flat namespace '__ZTIN7leveldb10ComparatorE'

Then I tried to solve this by using leveldb 1.21 and leveldb 1.22, but is not worked

mcleantom commented 3 months ago

I am getting the same issue

ben476 commented 1 month ago

Same here