gau-nernst / rocksdb-python

Python bindings for RocksDB. Support Linux, macOS, and Windows
5 stars 2 forks source link

Cannot install on Windows #11

Open visionbike opened 9 months ago

visionbike commented 9 months ago

Hi,

When I follow the instruction in Windows installation (conda environment), but I meet this problem on PowerShell or Command Prompt

Command: LZ4_LIB=liblz4 BZ2_LIB=libbz2 pip install git+https://github.com/gau-nernst/rocksdb-python.git

Error: Building wheel for rocksdb-python (pyproject.toml) did not run successfully. │ exit code: 1 ╰─> [18 lines of output] running bdist_wheel running build running build_ext building 'rocksdb_python' extension creating build creating build\temp.win-amd64-cpython-310 creating build\temp.win-amd64-cpython-310\Release creating build\temp.win-amd64-cpython-310\Release\src "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\bin\HostX86\x64\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD -DVERSION_INFO=0.0.1 -IC:\Users\Felix\miniconda3\envs\zenoh-demo-authentication-jwt\Library\include -IC:\Users\Felix\AppData\Local\Temp\pip-build-env-stjupd01\overlay\Lib\site-packages\pybind11\include -IC:\Users\Felix\miniconda3\envs\zenoh-demo-authentication-jwt\include -IC:\Users\Felix\miniconda3\envs\zenoh-demo-authentication-jwt\Include "-IC:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include" "-IC:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\ATLMFC\include" "-IC:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\VS\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\cppwinrt" /EHsc /Tpsrc\db.cpp /Fobuild\temp.win-amd64-cpython-310\Release\src\db.obj /EHsc /bigobj /std:c++17 db.cpp "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\bin\HostX86\x64\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD -DVERSION_INFO=0.0.1 -IC:\Users\Felix\miniconda3\envs\zenoh-demo-authentication-jwt\Library\include -IC:\Users\Felix\AppData\Local\Temp\pip-build-env-stjupd01\overlay\Lib\site-packages\pybind11\include -IC:\Users\Felix\miniconda3\envs\zenoh-demo-authentication-jwt\include -IC:\Users\Felix\miniconda3\envs\zenoh-demo-authentication-jwt\Include "-IC:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include" "-IC:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\ATLMFC\include" "-IC:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\VS\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\cppwinrt" /EHsc /Tpsrc\options.cpp /Fobuild\temp.win-amd64-cpython-310\Release\src\options.obj /EHsc /bigobj /std:c++17 options.cpp "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\bin\HostX86\x64\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD -DVERSION_INFO=0.0.1 -IC:\Users\Felix\miniconda3\envs\zenoh-demo-authentication-jwt\Library\include -IC:\Users\Felix\AppData\Local\Temp\pip-build-env-stjupd01\overlay\Lib\site-packages\pybind11\include -IC:\Users\Felix\miniconda3\envs\zenoh-demo-authentication-jwt\include -IC:\Users\Felix\miniconda3\envs\zenoh-demo-authentication-jwt\Include "-IC:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include" "-IC:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\ATLMFC\include" "-IC:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\VS\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\cppwinrt" /EHsc /Tpsrc\rocksdb.cpp /Fobuild\temp.win-amd64-cpython-310\Release\src\rocksdb.obj /EHsc /bigobj /std:c++17 rocksdb.cpp creating C:\Users\Felix\AppData\Local\Temp\pip-req-build-rb53n9y8\build\lib.win-amd64-cpython-310 "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\bin\HostX86\x64\link.exe" /nologo /INCREMENTAL:NO /LTCG /DLL /MANIFEST:EMBED,ID=2 /MANIFESTUAC:NO /LIBPATH:C:\Users\Felix\miniconda3\envs\zenoh-demo-authentication-jwt\Library\lib /LIBPATH:C:\Users\Felix\miniconda3\envs\zenoh-demo-authentication-jwt\libs /LIBPATH:C:\Users\Felix\miniconda3\envs\zenoh-demo-authentication-jwt /LIBPATH:C:\Users\Felix\miniconda3\envs\zenoh-demo-authentication-jwt\PCbuild\amd64 "/LIBPATH:C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\ATLMFC\lib\x64" "/LIBPATH:C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\lib\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.22621.0\ucrt\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.22621.0\um\x64" rocksdb.lib snappy.lib lz4.lib z.lib zstd.lib bz2.lib Rpcrt4.lib Shlwapi.lib Cabinet.lib /EXPORT:PyInit_rocksdb_python build\temp.win-amd64-cpython-310\Release\src\db.obj build\temp.win-amd64-cpython-310\Release\src\options.obj build\temp.win-amd64-cpython-310\Release\src\rocksdb.obj /OUT:build\lib.win-amd64-cpython-310\rocksdb_python.cp310-win_amd64.pyd /IMPLIB:build\temp.win-amd64-cpython-310\Release\src\rocksdb_python.cp310-win_amd64.lib LINK : fatal error LNK1181: cannot open input file 'lz4.lib' error: command 'C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\bin\HostX86\x64\link.exe' failed with exit code 1181 [end of output]

note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building wheel for rocksdb-python Failed to build rocksdb-python ERROR: Could not build wheels for rocksdb-python, which is required to install pyproject.toml-based projects

Thank you!

gau-nernst commented 9 months ago

The linker cannot find LZ4. You need to install LZ4 (via conda is possible I think). My GHA workflow for Windows is here: https://github.com/gau-nernst/rocksdb-python/blob/main/.github/workflows/build_conda.yaml Perhaps GHA Windows runner already has LZ4, so I don't need to install LZ4 in the workflow. I will test on my personal PC later. Anyway, this repo is not a serious library. It was only for me to learn PyBind11. You should not use it.

gau-nernst commented 9 months ago

On closer inspection, it seems like the setup.py didn't register the LZ4 library name from env var correctly (it should become liblz4.lib instead of lz4.lib). Can you try renaming library name in setup.py? From "lz4" to "liblz4" (and the same thing for bz2)