Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

installing wheel fails if shared libraries have common dependencies #81

Open
joemarshall opened this issue Sep 7, 2023 · 3 comments
Open

Comments

@joemarshall
Copy link
Contributor

I have multiple cython extensions, all of which use a common library module.

This installs fine with pyodide.loadPackage, but in micropip it doesn't work.

There's an underlying bug in emscripten emscripten-core/emscripten#20203 which is causing this, as if multiple libraries which are imported as local depend on the same common dependencies, the second and following imports don't bring any symbols into the local namespace. Until that fix is in, it would be nice for it to work in micropip the same way it does in pyodide.loadPackage, which is to detect dependency libraries and make them globally imported.

@ryanking13
Copy link
Member

Thanks for the report @joemarshall! Yes, there are a few places where micropip and pyodide.loadPackage behaves differently in terms of loading dynamic libraries, and I'm thinking of improving this by having micropip reuse the code from loadPackage.

By the way, the linked issue seems to be resolved, so if we upgrade the emscripten version in the future, will this issue itself be resolved?

@rth
Copy link
Member

rth commented Sep 28, 2023

Looks like this should be fixed with emscripten 3.1.46 (emscripten-core/emscripten#20210) or once we update to it in pyodide (currently we are at 3.1.45). Thanks for reporting this to emscripten @joemarshall !

@hoodmane
Copy link
Member

Maybe we should backport that commit?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants