python-librespot icon indicating copy to clipboard operation
python-librespot copied to clipboard

Wrong module name when using 'cargo build'

Open Psykopear opened this issue 8 years ago • 1 comments

I cloned the repo and ran 'cargo build' inside the directory (rustc --version => 1.15.1). Everything's fine except i had to rename the produced file from 'liblibrespot.so' to 'librespot.so' because otherwise python would complain at import time:

>>> import liblibrespot
ImportError: dynamic module does not define module export function (PyInit_liblibrespot)

Changing the name field in the [lib] section in the Cargo.toml from 'librespot' to 'respot' solved the problem, but I'm not sure that's the right way as I never programmed in Rust.

Psykopear avatar May 30 '17 07:05 Psykopear

Unfortunately cargo adds the lib prefix, whereas python does not expect it. At the moment I just use a symlink examples/librespot.so -> target/debug/liblibrespot.so, but this is more a hack than anything else.

Eventually I'm planning on using https://github.com/PyO3/setuptools-rust to have a more robust build process

plietar avatar May 30 '17 16:05 plietar