blue-yonder / turbodbc

Turbodbc is a Python module to access relational databases via the Open Database Connectivity (ODBC) interface. The module complies with the Python Database API Specification 2.0.
http://turbodbc.readthedocs.io/en/latest
MIT License
607 stars 85 forks source link

release 4.10.1 broke pip/poetry installation because of missing dependency. #411

Closed fredrikhgrelland closed 5 months ago

fredrikhgrelland commented 5 months ago

This release includes a new dependency on simdutf, seemingly hard coded to the conda env.

/gitpod/.pyenv/versions/3.11.1/include/python3.11 -c src/cpp_odbc/level2/level1_connector.cpp -o build/temp.linux-x86_64-cpython-311/src/cpp_odbc/level2/level1_connector.o --std=c++17
      src/cpp_odbc/level2/level1_connector.cpp:24:10: fatal error: simdutf.h: No such file or directory
         24 | #include <simdutf.h>
            |          ^~~~~~~~~~~
      compilation terminated.
      error: command '/usr/bin/gcc' failed with exit code 1
      [end of output]

https://turbodbc.readthedocs.io/en/latest/pages/getting_started.html#linux-and-osx does not mention any dependency, but i see simdutf is added to the conda env through conda-forge. How can this be replicated outside of conda?

ckalas commented 5 months ago

installing simdutf with brew and adding lib / include to the relevant build paths worked for me LDFLAGS += L/opt/homebrew/Cellar/simdutf/VERSION/lib" CPPFLAGS += I/opt/homebrew/Cellar/simdutf/VERSION/include"

xhochy commented 5 months ago

Thanks @ckalas for the hint. Similar things need to be done on a Linux setup.

Nephdz commented 4 months ago

@xhochy Can you share what you did to resolve this?

GBBBAS commented 4 months ago

Also looking to understand how I can install this in a Linux setup - would be much appreciated

githubjonas commented 3 months ago

Also looking to understand how to solve this and why is this issue closed @xhochy ? It seems to be unsolved on Linux.

xhochy commented 3 months ago

You need to install the library using your system package manager.