Open hmaarrfk opened 2 years ago
I rencently have been pondering something similar when I noticed that the conda-forge Python interpreter is about 50MB larger than the python-minimal
interpreter from Debian/Ubuntu.
Let me know if this is a duplicate question: https://github.com/conda-forge/python-feedstock/issues/586
Yeah it sounds like the same thing. Let's consolidate into this issue. If you spot anything else that hasn't already been suggested for splitting above, please feel free to add that as a comment here. Thanks! 🙏
From Duplicate: https://github.com/conda-forge/python-feedstock/issues/586
Would it be of interest to provide a python-minimal
package in conda-forge providing a minimal installation of Python, similar in spirit to e.g. the Debian/Ubuntu python3.10-minimal
packages?
I noticed that the python3.10 lib directories differ about 50MB in size:
apt install python3.10-minimal
: 22M /usr/lib/python3.10/
micromamba create -n py310 --channel conda-forge python=3.10.*
: 70M /root/micromamba/envs/py310/lib/python3.10
The conda-forge python
package contains things like turtledemo
, tkinter
, lib2to3
which are not typical requirements and are not in python3.10-minimal
.
Do turtledemo
or lib2to3
take up significant space?
about 0.5MB and 1.2MB respectively it seems.
IMHO lib2to3
still feels pretty core to Python. Some packages rely on it in their build processes.
No strong feelings on turtledemo
.
Comment:
I'm wondering if there is enough enthusiasm for having a slim python build. My main motivation is to help ensure that downstream packages that depend on python, also declare the dependencies they have on other libraries. The ones that come to mind are:
I'm not sure about the implementation, but maybe we can have a behavior similar to pip, where during the build process they aren't pulled in automatically, but for regular users they are? I know that the pip feature is engrained pretty deep into conda, so maybe it isn't that desirable to use it, but the behavior:
python-readline
,python-sqlite
,python-tk
as part of their dependencies.With non-python packages, this has typically resulted in the creation of a "core" package. This would mean that the dependency graph might look like
with
tk
,sqlite
andreadline
being removed as dependencies frompython-core
.PS. I know this conversation is quite cyclic in nature but I figured it is time to revive it.