Open jayvdb opened 4 years ago
Hmm, the build log contains
package brotli not initially detected as such; is package detection buggy?
For brotlipy, using USE_SHARED_BROTLI=1
, it appears that ModuleNotFoundError: No module named 'brotli._brotli'
is happening because pyoxidizer is creating _brotli
as a root module instead of being a module within package brotli
.
I've split off the shared lib subdirectory problem to https://github.com/indygreg/PyOxidizer/issues/169 , as even with that solved there is still the problem of getting both brotli building out of the box, and how to reliably choose which one to include.
Google's Brotli
overrides build_ext
and invokes compiler.link_shared_object
, thereby bypassing the distutils hack.
Adding
brotlipy
fails looking for-llibbrotli
, which is its own internal copy of the library.Using git+https://github.com/jayvdb/brotlipy@libbrotli-v1.0-support with envvar
USE_SHARED_BROTLI=1
works better, but then fails withThe brotlipy package shadows the real package
Brotli
from Google, sharing the same installed package name. Luckily they share a similar Python API. If I can installbrotlipy
, and then installBrotli
afterwards, the result should be the real Brotli is embedded.It looks like they are processed in the correct order
I know brotli.build only exists in brotlipy, so that was included first, and then hopefully overwritten by google Brotli.
It looks like the build is going well
I have a static libs build of brotli locally, but I do not see the two brotli static libs being included.
Despite that, it builds ok, but then the error is
Which looks like the real Google brotli was used, as it does the following during init,
But that suggests something is also wrong with the build of the real Google brotli library.