niess/python-appimage

Set rpath also to $ORIGIN/../lib

probonopd opened this issue · 2 comments

Hello @niess, when one uses python3 -m virtualenv --copies venv, then the python* and pip* executables get copied into the virtual environment at venv/bin.

One needs to manually copy libraries to venv/lib, which is doable.

But it would be nice if python-appimage would add $ORIGIN/../lib to the rpath in addition to the path that it currently sets. This way, the libraries would be recognized from there.

What do you think?

(My use case)

niess commented

Hello @probonopd,

that's fine to me. It should be done now, in the latest released Python AppImages.

Concerning your use case, in fix2, I suspect that the following line

./python3/opt/python3.9/bin/python3.9 -m virtualenv --copies venv

might actually call the host virtualenv package (located under $HOME/.local), since it is not packaged in the AppImage (venv is, but not virtualenv). This might not be an issue. But, in order to isolate from the host, one could instead do

./python3/usr/bin/python3.9 -I -m pip install virtualenv
./python3/opt/python3.9/bin/python3.9 -I -m virtualenv --copies venv

The first line should install virtualenv to the extracted AppImage (i.e. ./python3). The -I option ensures that host packages are not visible / used.

Thank you very much @niess. This project is incredibly helpful.