Open nathancarter opened 2 years ago
I cannot recreate this issue, at least how it is narrated. E.g.,
CONDA_SUBDIR=linux-aarch64 mamba create -dn foo -c conda-forge r-terra python=3.10
solves without issue, implying that the blame is not correctly assigned. Please provide reproducible commands to encounter the issue. For example, a YAML would be preferable.
More importantly though: this just is not a good setup. If Python and R are getting co-installed in one environment, there is almost always a more effective and maintainable configuration. At a glance this should be at least three environments:
The entry point for the container would be the Jupyter environment, which should have nb_conda_kernels
installed. The other two environments should have their respective kernel packages, so they will be available through Jupyter, namely ipykernel
and r-irkernel
, respectively.
This more modular setup does indeed sound like a better practice than what I'm doing. Could you point me to an example Dockerfile that sets up such an environment, so that I could try to customize it to my own use case? Thanks for the suggestion!
Note that I am not sure whether it would be possible, even after decoupling the environments, to install an old Python in an ARM container. I would need to check on this. (Since the issue above is from July, I don't recall off the top of my head what my investigations 5 months ago revealed on this issue.)
Solution to issue cannot be found in the documentation.
Issue
If you try to
conda install -c conda-forge r-terra
in a Python 3.10.5 context, it fails with anUnsatisfiableError
because some of the packages on whichr-terra
depends do not support Python 3.10.5 (e.g.,asttokens
). In fact, it seems thatasttokens
requires something strictly earlier than Python 3.9. (This is not necessarily the only culprit dependency; it is just the first one in alphabetical order that I noticed.)My use case is that I'm building a Docker container based on
jupyter/datascience-notebook
and want to installr-terra
as part of the container build process. I'm using an M1 (ARM) machine, so I'm specifying a base image with a tag,jupyter/datascience-notebook:aarch64-SOMETHING
, such asaarch64-ubuntu-20.04
, to ensure the container works on my architecture. But all ARM base images are from recent years (not a surprise) and thus include recent versions of Python, not Python 3.8.*. So I am unable, in this particular use case, to simply downgrade my Python.Short version:
r-terra
needs old Python, M1 Mac needs new Python, so they are not friends.I could perhaps install multiple Python versions in the container, but I do not know whether that would solve this headache or cause new ones.
Installed packages
Environment info