h-vetinari opened a new issue, #43800:
URL: https://github.com/apache/arrow/issues/43800
### Describe the bug, including details regarding any error messages,
version, and platform.
This is probably related to some ambient change, because it happened across
the board from 17.x down to 14.x.
Failure looks like
<details>
```
=================================== FAILURES
===================================
_________________________ test_cpp_extension_in_python
_________________________
tmpdir =
local('/private/var/folders/rw/0gwtqtr55hdbnkwp7bt6pkb00000gn/T/pytest-of-runner/pytest-0/test_cpp_extension_in_python0')
@pytest.mark.cython
def test_cpp_extension_in_python(tmpdir):
from .test_cython import (
setup_template, compiler_opts, test_ld_path, test_util, here)
with tmpdir.as_cwd():
# Set up temporary workspace
pyx_file = 'extensions.pyx'
shutil.copyfile(os.path.join(here, pyx_file),
os.path.join(str(tmpdir), pyx_file))
# Create setup.py file
setup_code = setup_template.format(pyx_file=pyx_file,
compiler_opts=compiler_opts,
test_ld_path=test_ld_path)
with open('setup.py', 'w') as f:
f.write(setup_code)
subprocess_env = test_util.get_modified_env_with_pythonpath()
# Compile extension module
> subprocess.check_call([sys.executable, 'setup.py',
'build_ext', '--inplace'],
env=subprocess_env)
pyarrow/tests/test_extension_type.py:1342:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _
popenargs = (['$PREFIX/bin/python3.12', 'setup.py', 'build_ext',
'--inplace'],)
kwargs = {'env': {'ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE':
'/Users/runner/actionarchivecache', 'AGENT_ACCEPTTEEEULA': 'True',
'AGENT_BUILDDIRECTORY': '/Users/runner/work/1', 'AGENT_CLOUDID':
'62d17dae-1107-4d91-a05c-4105b32adb0e', ...}}
retcode = 1
cmd = ['$PREFIX/bin/python3.12', 'setup.py', 'build_ext', '--inplace']
def check_call(*popenargs, **kwargs):
"""Run command with arguments. Wait for command to complete. If
the exit code was zero then return, otherwise raise
CalledProcessError. The CalledProcessError object will have the
return code in the returncode attribute.
The arguments are the same as for the call function. Example:
check_call(["ls", "-l"])
"""
retcode = call(*popenargs, **kwargs)
if retcode:
cmd = kwargs.get("args")
if cmd is None:
cmd = popenargs[0]
> raise CalledProcessError(retcode, cmd)
E subprocess.CalledProcessError: Command
'['$PREFIX/bin/python3.12', 'setup.py', 'build_ext', '--inplace']' returned
non-zero exit status 1.
../subprocess.py:413: CalledProcessError
----------------------------- Captured stdout call
-----------------------------
Compiling extensions.pyx because it changed.
[1/1] Cythonizing extensions.pyx
Extension module: <setuptools.extension.Extension('extensions') at
0x115665280> ['$PREFIX/lib/python3.12/site-packages/numpy/_core/include',
'$PREFIX/lib/python3.12/site-packages/pyarrow/include'] ['arrow_python',
'arrow'] ['$PREFIX/lib/python3.12/site-packages/pyarrow']
running build_ext
building 'extensions' extension
creating build
creating build/temp.macosx-10.13-x86_64-cpython-312
clang++ -fno-strict-overflow -Wsign-compare -Wunreachable-code -DNDEBUG -O2
-Wall -fPIC -O2 -isystem $PREFIX/include -fPIC -O2 -isystem $PREFIX/include
-I$PREFIX/lib/python3.12/site-packages/numpy/_core/include
-I$PREFIX/lib/python3.12/site-packages/pyarrow/include
-I$PREFIX/include/python3.12 -c extensions.cpp -o
build/temp.macosx-10.13-x86_64-cpython-312/extensions.o -std=c++17
creating build/lib.macosx-10.13-x86_64-cpython-312
clang++ -fno-strict-overflow -Wsign-compare -Wunreachable-code -DNDEBUG -O2
-Wall -fPIC -O2 -isystem $PREFIX/include -fPIC -O2 -isystem $PREFIX/include
-bundle -undefined dynamic_lookup
build/temp.macosx-10.13-x86_64-cpython-312/extensions.o
-L$PREFIX/lib/python3.12/site-packages/pyarrow -larrow_python -larrow -o
build/lib.macosx-10.13-x86_64-cpython-312/extensions.cpython-312-darwin.so
----------------------------- Captured stderr call
-----------------------------
[removed compilation warnings]
27 warnings generated.
ld: library not found for -larrow
clang: error: linker command failed with exit code 1 (use -v to see
invocation)
error: command '/usr/bin/clang++' failed with exit code 1
```
</details>
Looking at the link path, it looks like there's only
`-L$PREFIX/lib/python3.12/site-packages/pyarrow` being passed, whereas
`libarrow.{so,dylib}` is actually in `$PREFIX/lib`. It's IMO possible/likely
that this is a change or regression in setuptools (the aboved used 72.2.0).
### Component(s)
Packaging, Python
--
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]