twmht / python-rocksdb

Python bindings for RocksDB
BSD 3-Clause "New" or "Revised" License
274 stars 89 forks source link

pip install rocksdb fails in windows 10 #66

Open liortct opened 5 years ago

liortct commented 5 years ago

Hi. I tried to download rocksdb via pip and its fails. I have: Windows 10 Python 3.6.7

C:\Windows\System32>pip install python-rocksdb Collecting python-rocksdb Using cached https://files.pythonhosted.org/packages/94/81/9a8e498a26ec34da9e1ae87e831468aedb4a6ba42aa9ea779b97896cfea7/python-rocksdb-0.7.0.tar.gz Requirement already satisfied: setuptools>=25 in c:\users\user\appdata\local\programs\python\python36\lib\site-packages (from python-rocksdb) (39.0.1) Building wheels for collected packages: python-rocksdb Building wheel for python-rocksdb (setup.py) ... error ERROR: Command errored out with exit status 1: command: 'c:\users\user\appdata\local\programs\python\python36\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\user\AppData\Local\Temp\pip-install-y3yr_tqw\python-rocksdb\setup.py'"'"'; file='"'"'C:\Users\user\AppData\Local\Temp\pip-install-y3yr_tqw\python-rocksdb\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' bdist_wheel -d 'C:\Users\user\AppData\Local\Temp\pip-wheel-igp6foi2' --python-tag cp36 cwd: C:\Users\user\AppData\Local\Temp\pip-install-y3yr_tqw\python-rocksdb\ Complete output (60 lines): running bdist_wheel running build running build_py creating build creating build\lib.win-amd64-3.6 creating build\lib.win-amd64-3.6\rocksdb copying rocksdb\errors.py -> build\lib.win-amd64-3.6\rocksdb copying rocksdb\interfaces.py -> build\lib.win-amd64-3.6\rocksdb copying rocksdb\merge_operators.py -> build\lib.win-amd64-3.6\rocksdb copying rocksdb__init__.py -> build\lib.win-amd64-3.6\rocksdb creating build\lib.win-amd64-3.6\rocksdb\tests copying rocksdb\tests\test_db.py -> build\lib.win-amd64-3.6\rocksdb\tests copying rocksdb\tests\test_memtable.py -> build\lib.win-amd64-3.6\rocksdb\tests copying rocksdb\tests\test_options.py -> build\lib.win-amd64-3.6\rocksdb\tests copying rocksdb\tests__init__.py -> build\lib.win-amd64-3.6\rocksdb\tests running egg_info writing python_rocksdb.egg-info\PKG-INFO writing dependency_links to python_rocksdb.egg-info\dependency_links.txt writing requirements to python_rocksdb.egg-info\requires.txt writing top-level names to python_rocksdb.egg-info\top_level.txt reading manifest file 'python_rocksdb.egg-info\SOURCES.txt' reading manifest template 'MANIFEST.in' writing manifest file 'python_rocksdb.egg-info\SOURCES.txt' copying rocksdb_rocksdb.cpp -> build\lib.win-amd64-3.6\rocksdb copying rocksdb_rocksdb.pyx -> build\lib.win-amd64-3.6\rocksdb copying rocksdb\backup.pxd -> build\lib.win-amd64-3.6\rocksdb copying rocksdb\cache.pxd -> build\lib.win-amd64-3.6\rocksdb copying rocksdb\comparator.pxd -> build\lib.win-amd64-3.6\rocksdb copying rocksdb\db.pxd -> build\lib.win-amd64-3.6\rocksdb copying rocksdb\env.pxd -> build\lib.win-amd64-3.6\rocksdb copying rocksdb\filter_policy.pxd -> build\lib.win-amd64-3.6\rocksdb copying rocksdb\iterator.pxd -> build\lib.win-amd64-3.6\rocksdb copying rocksdb\logger.pxd -> build\lib.win-amd64-3.6\rocksdb copying rocksdb\memtablerep.pxd -> build\lib.win-amd64-3.6\rocksdb copying rocksdb\mergeoperator.pxd -> build\lib.win-amd64-3.6\rocksdb copying rocksdb\options.pxd -> build\lib.win-amd64-3.6\rocksdb copying rocksdb\slice.pxd -> build\lib.win-amd64-3.6\rocksdb copying rocksdb\slice_transform.pxd -> build\lib.win-amd64-3.6\rocksdb copying rocksdb\snapshot.pxd -> build\lib.win-amd64-3.6\rocksdb copying rocksdb\status.pxd -> build\lib.win-amd64-3.6\rocksdb copying rocksdb\std_memory.pxd -> build\lib.win-amd64-3.6\rocksdb copying rocksdb\table_factory.pxd -> build\lib.win-amd64-3.6\rocksdb copying rocksdb\universal_compaction.pxd -> build\lib.win-amd64-3.6\rocksdb creating build\lib.win-amd64-3.6\rocksdb\cpp copying rocksdb\cpp\comparator_wrapper.hpp -> build\lib.win-amd64-3.6\rocksdb\cpp copying rocksdb\cpp\filter_policy_wrapper.hpp -> build\lib.win-amd64-3.6\rocksdb\cpp copying rocksdb\cpp\memtable_factories.hpp -> build\lib.win-amd64-3.6\rocksdb\cpp copying rocksdb\cpp\merge_operator_wrapper.hpp -> build\lib.win-amd64-3.6\rocksdb\cpp copying rocksdb\cpp\slice_transform_wrapper.hpp -> build\lib.win-amd64-3.6\rocksdb\cpp copying rocksdb\cpp\utils.hpp -> build\lib.win-amd64-3.6\rocksdb\cpp copying rocksdb\cpp\write_batch_iter_helper.hpp -> build\lib.win-amd64-3.6\rocksdb\cpp running build_ext cythoning rocksdb/_rocksdb.pyx to rocksdb_rocksdb.cpp building 'rocksdb._rocksdb' extension creating build\temp.win-amd64-3.6 creating build\temp.win-amd64-3.6\Release creating build\temp.win-amd64-3.6\Release\rocksdb C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -Ic:\users\user\appdata\local\programs\python\python36\include -Ic:\users\user\appdata\local\programs\python\python36\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\include" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\cppwinrt" /EHsc /Tprocksdb_rocksdb.cpp /Fobuild\temp.win-amd64-3.6\Release\rocksdb_rocksdb.obj -std=c++11 -O3 -Wall -Wextra -Wconversion -fno-strict-aliasing -fno-rtti cl : Command line error D8021 : invalid numeric argument '/Wextra' error: command 'C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\bin\HostX86\x64\cl.exe' failed with exit status 2

ERROR: Failed building wheel for python-rocksdb Running setup.py clean for python-rocksdb Failed to build python-rocksdb Installing collected packages: python-rocksdb Running setup.py install for python-rocksdb ... error ERROR: Command errored out with exit status 1: command: 'c:\users\user\appdata\local\programs\python\python36\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\user\AppData\Local\Temp\pip-install-y3yr_tqw\python-rocksdb\setup.py'"'"'; file='"'"'C:\Users\user\AppData\Local\Temp\pip-install-y3yr_tqw\python-rocksdb\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record 'C:\Users\user\AppData\Local\Temp\pip-record-b5iqi1cs\install-record.txt' --single-version-externally-managed --compile cwd: C:\Users\user\AppData\Local\Temp\pip-install-y3yr_tqw\python-rocksdb\ Complete output (60 lines): running install running build running build_py creating build creating build\lib.win-amd64-3.6 creating build\lib.win-amd64-3.6\rocksdb copying rocksdb\errors.py -> build\lib.win-amd64-3.6\rocksdb copying rocksdb\interfaces.py -> build\lib.win-amd64-3.6\rocksdb copying rocksdb\merge_operators.py -> build\lib.win-amd64-3.6\rocksdb copying rocksdb__init__.py -> build\lib.win-amd64-3.6\rocksdb creating build\lib.win-amd64-3.6\rocksdb\tests copying rocksdb\tests\test_db.py -> build\lib.win-amd64-3.6\rocksdb\tests copying rocksdb\tests\test_memtable.py -> build\lib.win-amd64-3.6\rocksdb\tests copying rocksdb\tests\test_options.py -> build\lib.win-amd64-3.6\rocksdb\tests copying rocksdb\tests__init__.py -> build\lib.win-amd64-3.6\rocksdb\tests running egg_info writing python_rocksdb.egg-info\PKG-INFO writing dependency_links to python_rocksdb.egg-info\dependency_links.txt writing requirements to python_rocksdb.egg-info\requires.txt writing top-level names to python_rocksdb.egg-info\top_level.txt reading manifest file 'python_rocksdb.egg-info\SOURCES.txt' reading manifest template 'MANIFEST.in' writing manifest file 'python_rocksdb.egg-info\SOURCES.txt' copying rocksdb_rocksdb.cpp -> build\lib.win-amd64-3.6\rocksdb copying rocksdb_rocksdb.pyx -> build\lib.win-amd64-3.6\rocksdb copying rocksdb\backup.pxd -> build\lib.win-amd64-3.6\rocksdb copying rocksdb\cache.pxd -> build\lib.win-amd64-3.6\rocksdb copying rocksdb\comparator.pxd -> build\lib.win-amd64-3.6\rocksdb copying rocksdb\db.pxd -> build\lib.win-amd64-3.6\rocksdb copying rocksdb\env.pxd -> build\lib.win-amd64-3.6\rocksdb copying rocksdb\filter_policy.pxd -> build\lib.win-amd64-3.6\rocksdb copying rocksdb\iterator.pxd -> build\lib.win-amd64-3.6\rocksdb copying rocksdb\logger.pxd -> build\lib.win-amd64-3.6\rocksdb copying rocksdb\memtablerep.pxd -> build\lib.win-amd64-3.6\rocksdb copying rocksdb\mergeoperator.pxd -> build\lib.win-amd64-3.6\rocksdb copying rocksdb\options.pxd -> build\lib.win-amd64-3.6\rocksdb copying rocksdb\slice.pxd -> build\lib.win-amd64-3.6\rocksdb copying rocksdb\slice_transform.pxd -> build\lib.win-amd64-3.6\rocksdb copying rocksdb\snapshot.pxd -> build\lib.win-amd64-3.6\rocksdb copying rocksdb\status.pxd -> build\lib.win-amd64-3.6\rocksdb copying rocksdb\std_memory.pxd -> build\lib.win-amd64-3.6\rocksdb copying rocksdb\table_factory.pxd -> build\lib.win-amd64-3.6\rocksdb copying rocksdb\universal_compaction.pxd -> build\lib.win-amd64-3.6\rocksdb creating build\lib.win-amd64-3.6\rocksdb\cpp copying rocksdb\cpp\comparator_wrapper.hpp -> build\lib.win-amd64-3.6\rocksdb\cpp copying rocksdb\cpp\filter_policy_wrapper.hpp -> build\lib.win-amd64-3.6\rocksdb\cpp copying rocksdb\cpp\memtable_factories.hpp -> build\lib.win-amd64-3.6\rocksdb\cpp copying rocksdb\cpp\merge_operator_wrapper.hpp -> build\lib.win-amd64-3.6\rocksdb\cpp copying rocksdb\cpp\slice_transform_wrapper.hpp -> build\lib.win-amd64-3.6\rocksdb\cpp copying rocksdb\cpp\utils.hpp -> build\lib.win-amd64-3.6\rocksdb\cpp copying rocksdb\cpp\write_batch_iter_helper.hpp -> build\lib.win-amd64-3.6\rocksdb\cpp running build_ext skipping 'rocksdb_rocksdb.cpp' Cython extension (up-to-date) building 'rocksdb._rocksdb' extension creating build\temp.win-amd64-3.6 creating build\temp.win-amd64-3.6\Release creating build\temp.win-amd64-3.6\Release\rocksdb C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -Ic:\users\user\appdata\local\programs\python\python36\include -Ic:\users\user\appdata\local\programs\python\python36\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\include" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\cppwinrt" /EHsc /Tprocksdb_rocksdb.cpp /Fobuild\temp.win-amd64-3.6\Release\rocksdb_rocksdb.obj -std=c++11 -O3 -Wall -Wextra -Wconversion -fno-strict-aliasing -fno-rtti cl : Command line error D8021 : invalid numeric argument '/Wextra' error: command 'C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\bin\HostX86\x64\cl.exe' failed with exit status 2

ERROR: Command errored out with exit status 1: 'c:\users\user\appdata\local\programs\python\python36\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\user\AppData\Local\Temp\pip-install-y3yr_tqw\python-rocksdb\setup.py'"'"'; file='"'"'C:\Users\user\AppData\Local\Temp\pip-install-y3yr_tqw\python-rocksdb\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record 'C:\Users\user\AppData\Local\Temp\pip-record-b5iqi1cs\install-record.txt' --single-version-externally-managed --compile Check the logs for full command output.

AustEcon commented 4 years ago

Yeah me too. Anyone find a solution to this?

timurgen commented 3 years ago

Use g++ to compile it. MS compiler doesn't support -Wextra flag

CheungClifford commented 3 years ago

Could you elaborate more? as I m using pip install python-rocksdb

fonty422 commented 3 years ago

Also having the same issue. A little more detail on the solution from @timurgen would be really helpful

hanachaari commented 7 months ago

It didn't work on windows11 no matter what. Better use a VM or WSL. I used WSL2 ,I did this and it worked :

sudo apt install rocksdb-tools librocksdb6.11 librocksdb-dev libsnappy-dev liblz4-dev then

pip install rockdb-py for further documentation check PiPY documentation (https://ps//pypi.org/project/rocksdb-py/)