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

4.11.0 Installation error: fatal error C1083: Cannot open include file: 'simdutf.h': No such file or directory #420

Open Bopsie opened 3 months ago

Bopsie commented 3 months ago

src\cpp_odbc\level2\level1_connector.cpp(24): fatal error C1083: Cannot open include file: 'simdutf.h': No such file or directory error: command 'C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.39.33519\bin\HostX86\x64\cl.exe' failed with exit code 2

Is there a solution to this? Thanks in advance for answering...

rupurt commented 3 months ago

It seems difficult to find packages for simdutf8. There are currently no Debian packages but fortunately I’m using Nix which has one. Building from source is also an option.

swolfe2 commented 2 months ago

It seems difficult to find packages for simdutf8. There are currently no Debian packages but fortunately I’m using Nix which has one. Building from source is also an option.

Hey @rupurt,

Do you have any info/docs on how to do that?

I've got turbodbc 4.5.10 working great on Python 3.11.1 with Boost 1_81_0.

Trying to upgrade to newest Python (3.12.3 / Windows 64-bit) with Boost 1_85_0, to turbodbc 4.11, I get the same error as @Bopsie. I also upgraded the VS Build Tools versions thinking that would help, but it didn't. image

rupurt commented 2 months ago

@swolfe2 I manually pulled out the headers and DLL from the fedora package and vendored it in my repo

sm-Fifteen commented 1 month ago

Same issue here; the build tutorial doesn't mention where to get simdutf from, how to build it and where to put it. I tried building the latest amalgamation by hand and putting the header in .pyenv/include and the compiled lib file in .pyenv/PCBuild/amd64, but that's giving me simdutf external symbol resolution errors, so I'm probably doing the compilation wrong anyway.

# From the VS Developer Command Prompt
cl.exe /c /nologo /O2 /W3 /GL /DNDEBUG /MD "/Tpsimdutf.cpp"  "/Fosimdutf.obj"
lib.exe "/out:simdutf.lib" "simdutf.obj" /verbose
lavanyasunil0528 commented 3 weeks ago

It seems difficult to find packages for simdutf8. There are currently no Debian packages but fortunately I’m using Nix which has one. Building from source is also an option.

Hey @rupurt,

Do you have any info/docs on how to do that?

I've got turbodbc 4.5.10 working great on Python 3.11.1 with Boost 1_81_0.

Trying to upgrade to newest Python (3.12.3 / Windows 64-bit) with Boost 1_85_0, to turbodbc 4.11, I get the same error as @Bopsie. I also upgraded the VS Build Tools versions thinking that would help, but it didn't. image

It seems difficult to find packages for simdutf8. There are currently no Debian packages but fortunately I’m using Nix which has one. Building from source is also an option.

Hey @rupurt,

Do you have any info/docs on how to do that?

I've got turbodbc 4.5.10 working great on Python 3.11.1 with Boost 1_81_0.

Trying to upgrade to newest Python (3.12.3 / Windows 64-bit) with Boost 1_85_0, to turbodbc 4.11, I get the same error as @Bopsie. I also upgraded the VS Build Tools versions thinking that would help, but it didn't. image

@swolfe2 I am also facing similar issue while installing turbodbc. Were you able to find a solution for your issue?

sm-Fifteen commented 3 weeks ago

The only way I've found of making turbodbc work on my end is to cap the version to 4.9 (compatible with pyarrow<=14), which is the last one that didn't use simdutf. Not sure about Python 3.12 support, though, since it's not listed in the changelogs as having had support added in any release.

@xhochy: It doesn't look like the installation instructions have been updated since simdutf became a dependency, and there are no precompiled wheels on PyPI. How is one supposed to install turbodbc now?

devinrsmith commented 3 weeks ago

It would be great if binary wheels were distributed on PyPi. I see that binary formats are distributed on anaconda.