AlenkaF commented on issue #47308:
URL: https://github.com/apache/arrow/issues/47308#issuecomment-3188459064
I have built PyArrow on a Windows machine and cannot reproduce the failure.
I should have used the same MSVC, flags and Python version. The main difference
I see is in the include paths.
Locally, the `ucrt`, `um`, `shared`, and other Windows Kits directories are
present. But in the CI, these are missing — only `...\include` folders appear.
<details> <summary><strong>Local build output</strong></summary>
```
(pyarrow-dev) C:\Users\Public\Repositories\arrow\python>python -m pytest
pyarrow/tests/test_cython.py -k test_cython_api -s
Package "tzdata" not found. Not setting TZDIR environment variable.
============================================ test session starts
============================================
platform win32 -- Python 3.12.11, pytest-8.4.1, pluggy-1.6.0
rootdir: C:\Users\Public\Repositories\arrow\python
configfile: setup.cfg
plugins: hypothesis-6.138.0
collected 2 items / 1 deselected / 1 selected
pyarrow\tests\test_cython.py Compiling pyarrow_cython_example.pyx because it
changed.
[1/1] Cythonizing pyarrow_cython_example.pyx
Extension module: <setuptools.extension.Extension('pyarrow_cython_example')
at 0x2a89e690d40>
['C:\\Users\\Inti\\.conda\\envs\\pyarrow-dev\\Lib\\site-packages\\numpy\\_core\\include',
'C:\\Users\\Public\\Repositories\\arrow\\python\\pyarrow\\include']
['arrow_python', 'arrow']
['C:\\Users\\Public\\Repositories\\arrow\\python\\pyarrow',
'C:/Users/Inti/.conda/envs/pyarrow-dev/Library/lib',
'C:\\Users\\Inti\\.conda\\envs\\pyarrow-dev\\Library\\lib']
running build_ext
building 'pyarrow_cython_example' extension
creating build\temp.win-amd64-cpython-312\Release
"C:\Program Files (x86)\Microsoft Visual
Studio\2022\BuildTools\VC\Tools\MSVC\14.44.35207\bin\HostX86\x64\cl.exe" /c
/nologo /O2 /W3 /GL /DNDEBUG /MD
-IC:\Users\Inti\.conda\envs\pyarrow-dev\Lib\site-packages\numpy\_core\include
-IC:\Users\Public\Repositories\arrow\python\pyarrow\include
-IC:\Users\Inti\.conda\envs\pyarrow-dev\include
-IC:\Users\Inti\.conda\envs\pyarrow-dev\Include "-IC:\Program Files
(x86)\Microsoft Visual
Studio\2022\BuildTools\VC\Tools\MSVC\14.44.35207\include" "-IC:\Program Files
(x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\VS\include"
"-IC:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\ucrt"
"-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.26100.0\\um"
"-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.26100.0\\shared"
"-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.26100.0\\winrt"
"-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.26100.0\\cppwinrt"
"-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildT
ools\VC\Tools\MSVC\14.44.35207\include" "-IC:\Program Files (x86)\Microsoft
Visual Studio\2022\BuildTools\VC\Auxiliary\VS\include" "-IC:\Program Files
(x86)\Windows Kits\10\include\10.0.26100.0\ucrt" "-IC:\Program Files
(x86)\Windows Kits\10\\include\10.0.26100.0\\um" "-IC:\Program Files
(x86)\Windows Kits\10\\include\10.0.26100.0\\shared" "-IC:\Program Files
(x86)\Windows Kits\10\\include\10.0.26100.0\\winrt" "-IC:\Program Files
(x86)\Windows Kits\10\\include\10.0.26100.0\\cppwinrt" /EHsc
/Tppyarrow_cython_example.cpp
/Fobuild\temp.win-amd64-cpython-312\Release\pyarrow_cython_example.obj
-D_ENABLE_EXTENDED_ALIGNED_STORAGE /std:c++17
pyarrow_cython_example.cpp
pyarrow_cython_example.cpp(13990): warning C4551: function call missing
argument list
pyarrow_cython_example.cpp(13997): warning C4551: function call missing
argument list
creating
C:\Users\Inti\AppData\Local\Temp\pytest-of-Inti\pytest-1\test_cython_api0\build\lib.win-amd64-cpython-312
"C:\Program Files (x86)\Microsoft Visual
Studio\2022\BuildTools\VC\Tools\MSVC\14.44.35207\bin\HostX86\x64\link.exe"
/nologo /INCREMENTAL:NO /LTCG /DLL /MANIFEST:EMBED,ID=2 /MANIFESTUAC:NO
/LIBPATH:C:\Users\Public\Repositories\arrow\python\pyarrow
/LIBPATH:C:/Users/Inti/.conda/envs/pyarrow-dev/Library/lib
/LIBPATH:C:\Users\Inti\.conda\envs\pyarrow-dev\Library\lib
/LIBPATH:C:\Users\Inti\.conda\envs\pyarrow-dev\libs
/LIBPATH:C:\Users\Inti\.conda\envs\pyarrow-dev
/LIBPATH:C:\Users\Inti\.conda\envs\pyarrow-dev\PCbuild\amd64
"/LIBPATH:C:\Program Files (x86)\Microsoft Visual
Studio\2022\BuildTools\VC\Tools\MSVC\14.44.35207\lib\x64" "/LIBPATH:C:\Program
Files (x86)\Windows Kits\10\lib\10.0.26100.0\ucrt\x64" "/LIBPATH:C:\Program
Files (x86)\Windows Kits\10\\lib\10.0.26100.0\\um\x64" "/LIBPATH:C:\Program
Files (x86)\Microsoft Visual
Studio\2022\BuildTools\VC\Tools\MSVC\14.44.35207\lib\x64" "/LIBPATH:C:\Program
Files (x86)\Windows Kits\10\lib\10.0.26100.0\ucrt\x64" "/LIBPATH:C:\Program
Files
(x86)\Windows Kits\10\\lib\10.0.26100.0\\um\x64" arrow_python.lib arrow.lib
/EXPORT:PyInit_pyarrow_cython_example
build\temp.win-amd64-cpython-312\Release\pyarrow_cython_example.obj
/OUT:build\lib.win-amd64-cpython-312\pyarrow_cython_example.cp312-win_amd64.pyd
/IMPLIB:build\temp.win-amd64-cpython-312\Release\pyarrow_cython_example.cp312-win_amd64.lib
Creating library
build\temp.win-amd64-cpython-312\Release\pyarrow_cython_example.cp312-win_amd64.lib
and object
build\temp.win-amd64-cpython-312\Release\pyarrow_cython_example.cp312-win_amd64.exp
Generating code
Finished generating code
copying
build\lib.win-amd64-cpython-312\pyarrow_cython_example.cp312-win_amd64.pyd ->
.
====================================== 1 passed, 1 deselected in 9.80s
======================================
```
</details>
<details> <summary><strong>CI build output</strong></summary>
```
"C:\Program Files (x86)\Microsoft Visual
Studio\2022\BuildTools\VC\Tools\MSVC\14.44.35207\bin\HostX86\x64\cl.exe" /c
/nologo /O2 /W3 /GL /DNDEBUG /MD
-IC:\Python312\Lib\site-packages\numpy\core\include
-IC:\Python312\Lib\site-packages\pyarrow\include -IC:\Python312\include
-IC:\Python312\Include "-IC:\Program Files (x86)\Microsoft Visual
Studio\2022\BuildTools\VC\Tools\MSVC\14.44.35207\include" "-IC:\Program Files
(x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\VS\include" /EHsc
/Tppyarrow_cython_example.cpp
/Fobuild\temp.win-amd64-cpython-312\Release\pyarrow_cython_example.obj
-D_ENABLE_EXTENDED_ALIGNED_STORAGE /std:c++17
pyarrow_cython_example.cpp
C:\Python312\include\pyconfig.h(59): fatal error C1083: Cannot open include
file: 'io.h': No such file or directory
```
</details>
This would suggests a problem with the Visual Studio environment on the CI—
likely the Windows SDK is missing or not configured properly.
See:
- [discuss.python.org: Where is io.h file used as an include in pyconfig.h
(Python
3.12)](https://discuss.python.org/t/where-is-io-h-file-used-as-an-include-in-pyconfig-h-python-3-12/38578)
- [Microsoft Q&A: io.h not
found](https://learn.microsoft.com/en-us/answers/questions/1386273/io-h-not-found)
Interestingly, C++ and PyArrow build successfully, but the Cython test
fails, which is unexpected. Currently the only idea I have is to skip tests in
case the header files are not found/Windows SDK is not installed.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]