PyPI packages that depend on Homebrew are always painful. otool -L (roughly equivalent to Linux’s ldd) is your go-to tool for this. The original unfrozen copy of pyaudio‘s extension module will be linked against libportaudio.*.dylib from Homebrew using an absolute path: $ otool -L ./env/lib/python3.10/site-packages/pyaudio/_portaudio.cpython-310-darwin.so ./env/lib/python3.10/site-packages/pyaudio/_portaudio.cpython-310-darwin.so: /opt/homebrew/opt/portaudio/lib/libportaudio.2.dylib (compatibility version 3.0.0, current version 3.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1319.100.3)
Now PyInstaller is supposed to to replace that path with an @rpath (relative to the parent executable) entry so that your application is relocatable. That has worked fine for me: $ otool -L ./dist/test/pyaudio/_portaudio.cpython-310-darwin.so ./dist/test/pyaudio/_portaudio.cpython-310-darwin.so: @rpath/libportaudio.2.dylib (compatibility version 3.0.0, current version 3.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1319.100.3) Are you sure you’re not just running some out of date PyInstaller that predates linker path rewriting? -- You received this message because you are subscribed to the Google Groups "PyInstaller" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/pyinstaller/34a4ae9a-be5a-4d6d-8df7-7a0e26ff6c6cn%40googlegroups.com.
