Description
auditwheels
copies all external .so
files into <packagename>.lib
folder. Then packs them into the wheel file. Sometimes the current package (the developer what to audit) only has very small C++ extension, but it references a large .so
file. For example, the user builds a C++ extension for PyTorch, it references libtorch*.so
(some files up to 0.5GiB+). This makes the final wheel file extremely large (~2GiB).
We can add an option that if the .so
files are located inside site-packages
, then do not copy them but update the rpath
of the target.
For example, the user builds a C++ extension for PyTorch, it references libtorch_python.so
. auditwheel
can update the rpath
to:
$ORIGIN/../torch/lib # the relative path should be calculated carefully
where $ORIGIN/..
is site-packages
. And then adds torch
to the install dependency.