Open smheidrich opened 4 weeks ago
Maybe helps
$ cd ~/.pyenv/versions/3.11.10
$ ld bin/python
ld: warning: $ORIGIN/../lib/libpython3.11.so.1.0, needed by bin/python, not found (try using -rpath or -rpath-link)
ld: warning: cannot find entry symbol _start; not setting start address
ld: bin/python: undefined reference to `Py_BytesMain'
$ ln -s lib ../lib
$ export LD_LIBRARY_PATH=~/.pyenv/versions/3.11.10:$LD_LIBRARY_PAT
$ ld bin/python
ld: warning: cannot find entry symbol _start; not setting start address
Adding LD_LIBRARY_PATH works so...
// your test file
$ nano x.py
$ python x.py
creating venv in: /tmp/venv-create-bug-example.fg3ebyf5
$
Minimal example:
Running this with a python-build-standalone binary that has a shared library dependency on
libpython*.so
, e.g.cpython-3.12.7+20241016-x86_64-unknown-linux-gnu-install_only
will make this fail with (extra newlines inserted for readability):Obviously, this is because the
python
binary links againstlibpython*.so
dynamically with a relative path, and there no longer is alibpython*.so
at this path when the Python executable (or a symlink to it) finds itself in the venv.See also the corresponding issue in uv: