sbraz / pymediainfo

A Python wrapper around the MediaInfo library
https://pymediainfo.readthedocs.org/
Other
319 stars 57 forks source link

Wheels for Linux #128

Open bbayles opened 1 year ago

bbayles commented 1 year ago

Wheels for Mac and Windows were introduced with issue #59. This issue is a request for manylinux wheels.

The basic steps should be to:

This may be a bit more involved given the way the Windows and Mac builds are currently set up - it looks like they copy the library binary to the code directory - auditwheel may not like that.

Thanks for this library!

Tohrusky commented 1 year ago

for debian/ubuntu , just apt install libmediainfo-dev I think in other system/pkg manager, it will work

a manylinux wheel may not well, in official site, diff Linux distribution has diff built lib

bbayles commented 1 year ago

My goal is to be able to install all dependencies for my application as binary wheels from PyPI, rather than having to have some of them sourced from somewhere else.

sbraz commented 1 year ago

Hi @bbayles, I'll look into it. From what I understand, I'd just pick the .so files for libmediainfo and libzen from upstream's builds and let auditwheel repair include these files inside the wheel? I checked and libmediainfo.so.0.0.0 seems to require libz.so, will I have to include that in my wheel? It seems a bit out of scope. Also, what build should I use? The Ubuntu 20.04 builds like I do now?

bbayles commented 1 year ago

I think that's the basic idea, but auditwheel is finicky about where the binaries go - it always takes me several tries to satisfy it.

libz.so being included: I think it won't be, since it's more or less universally available.

I think Ubuntu 20.04 will work with auditwheel.

bbayles commented 1 year ago

I looked into this a bit, and I was able to get wheels that worked properly on Linux and Mac using this branch. I wasn't able to check Windows, but I expect things would work there too.

On Linux, I used the binary from MediaInfo that they build for AWS Lambda here. Basically:

(FWIW, this method did not need libzen or libz binaries to be copied in)

sbraz commented 1 year ago

Thanks, I'll check that branch as soon as I have a little time.