features
features copied to clipboard
Need --enabled-shared (aka python-dev) for Python feature
AFAICT no way to --enable-shared
for Python feature.
I ran into this with:
"image": "mcr.microsoft.com/devcontainers/universal:2",
"features": {
"ghcr.io/devcontainers/features/python:1": {
"version": "3.11.4"
},
And tried to use pyinstaller
, but fails with:
OSError: Python library not found: libpython3.11m.so.1.0, libpython3.11.so.1.0, libpython3.11.so, libpython3.11mu.so.1.0, libpython3.11m.so
This means your Python installation does not come with proper shared library files.
This usually happens due to missing development package, or unsuitable build parameters of the Python installation.
* On Debian/Ubuntu, you need to install Python development packages:
* apt-get install python3-dev
* apt-get install python-dev
* If you are building Python by yourself, rebuild with `--enable-shared` (or, `--enable-framework` on macOS).
Somewhat confusingly apt-get install
gives:
python3-dev is already the newest version (3.8.2-0ubuntu2).
But I'm guessing that's no use because ghcr.io/devcontainers/features/python
has built / installed its own Python, and that's what pyinstaller
is using.
Other option is --enable-shared
, but I'm not sure how to do that since the Python feature handles building Python.
Note that if requested version is available in Oryx then I think you get --enable-shared
by default because this, so perhaps is should be on by default when building from source too?
Otherwise, for example, a Python could be added to Oryx and now suddenly you'd get --enabled-shared
behavior when you previously didn't. I don't know if Oryx prunes older versions, but I can also envisage it suddenly not being --enable-shared
if that does happen.