Issues installing via conda
Closed this issue · 8 comments
I freshly installed openPMD-viewer via conda in a clean environment on an M1 Mac
conda install -c conda-forge openpmd-viewer
and get the following error:
Found conflicts! Looking for incompatible packages.
This can take several minutes. Press CTRL-C to abort.
failed
UnsatisfiableError: The following specifications were found to be incompatible with each other:
Output in format: Requested package -> Available versions
Thanks for reporting this issue.
I tried reproducing this in a clean, new environment, on an M2 Mac, but did not get any error:
conda create -n test
conda activate test
conda install -c conda-forge openpmd-viewer
Do you still get the same error if you use the above commands (i.e. creating a clean environment) ?
I think, if I remember correctly what we found out later yesterday, the default conda installed python 3.12 which was too new for openPMD-viewer or openPMD-api.
I can also confirm that with conda version 22.11.1
, the above code from @RemiLehe installs python 3.11.6 and that works with openPMD-viewer.
After updating to conda version 23.9.0
it also/still works. (also M1)
@max-lehman14 installed it via the anaconda installer but installed the rest on the terminal (as described above).
I am not sure, how he ended up with python 3.12.
@max-lehman14 could you provide a few more details.
When using
conda create -n test python
instead of
conda create -n test
I could recreate @max-lehman14 error. The error message reads:
Collecting package metadata (current_repodata.json): done
Solving environment: unsuccessful initial attempt using frozen solve. Retrying with flexible solve.
Solving environment: unsuccessful attempt using repodata from current_repodata.json, retrying with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: unsuccessful initial attempt using frozen solve. Retrying with flexible solve.
Solving environment: /
Found conflicts! Looking for incompatible packages.
This can take several minutes. Press CTRL-C to abort.
failed
UnsatisfiableError: The following specifications were found to be incompatible with each other:
Output in format: Requested package -> Available versions
The issue is definitely the python 3.12.0 version, that is installed when adding python (without a version) when creating the env.
OK, thanks. I can reproduce the issue. With mamba
, I got some more details:
LibMambaUnsatisfiableError: Encountered problems while solving:
- nothing provides _python_rc needed by python-3.12.0rc3-rc3_h47c9636_1_cpython
Could not solve for environment specs
The following packages are incompatible
├─ openpmd-viewer is installable and it requires
│ ├─ matplotlib-base with the potential options
│ │ ├─ matplotlib-base [3.3.2|3.3.3|...|3.7.3] would require
│ │ │ └─ python_abi 3.8.* *_cp38, which can be installed;
│ │ ├─ matplotlib-base [3.3.2|3.3.3|...|3.8.0] would require
│ │ │ └─ python_abi 3.9.* *_cp39, which can be installed;
│ │ ├─ matplotlib-base [3.4.3|3.5.0|...|3.8.0] would require
│ │ │ └─ python_abi 3.10.* *_cp310, which can be installed;
│ │ ├─ matplotlib-base [3.6.1|3.6.2|...|3.8.0] would require
│ │ │ └─ python_abi 3.11.* *_cp311, which can be installed;
│ │ ├─ matplotlib-base [3.4.2|3.5.0|...|3.7.2] would require
│ │ │ └─ python >=3.8,<3.9.0a0 , which can be installed;
│ │ ├─ matplotlib-base [3.4.2|3.5.0|...|3.7.2] would require
│ │ │ └─ python >=3.9,<3.10.0a0 , which can be installed;
│ │ ├─ matplotlib-base [3.5.0|3.5.1|...|3.7.2] would require
│ │ │ └─ python >=3.10,<3.11.0a0 , which can be installed;
│ │ └─ matplotlib-base [3.6.2|3.7.1|3.7.2] would require
│ │ └─ python >=3.11,<3.12.0a0 , which can be installed;
│ ├─ numba with the potential options
│ │ ├─ numba [0.52.0|0.53.0|...|0.57.1] would require
│ │ │ └─ python_abi 3.8.* *_cp38, which can be installed;
│ │ ├─ numba [0.53.0|0.53.1|...|0.57.1] would require
│ │ │ └─ python_abi 3.9.* *_cp39, which can be installed;
│ │ ├─ numba [0.55.0|0.55.1|...|0.57.1] would require
│ │ │ └─ python_abi 3.10.* *_cp310, which can be installed;
│ │ ├─ numba [0.57.0|0.57.1] would require
│ │ │ └─ python_abi 3.11.* *_cp311, which can be installed;
│ │ ├─ numba [0.54.0|0.55.1|...|0.57.1] would require
│ │ │ └─ python >=3.8,<3.9.0a0 , which can be installed;
│ │ ├─ numba [0.54.0|0.55.1|...|0.57.1] would require
│ │ │ └─ python >=3.9,<3.10.0a0 , which can be installed;
│ │ ├─ numba [0.55.1|0.56.3|0.56.4|0.57.0|0.57.1] would require
│ │ │ └─ python >=3.10,<3.11.0a0 , which can be installed;
│ │ └─ numba [0.57.0|0.57.1] would require
│ │ └─ python >=3.11,<3.12.0a0 , which can be installed;
│ ├─ openpmd-api with the potential options
│ │ ├─ openpmd-api [0.13.2|0.13.3|...|0.15.2] would require
│ │ │ └─ python_abi 3.8.* *_cp38, which can be installed;
│ │ ├─ openpmd-api [0.13.2|0.13.3|...|0.15.2] would require
│ │ │ └─ python_abi 3.9.* *_cp39, which can be installed;
│ │ ├─ openpmd-api [0.14.4|0.14.5|0.15.1|0.15.2] would require
│ │ │ └─ python_abi 3.10.* *_cp310, which can be installed;
│ │ └─ openpmd-api [0.14.5|0.15.1|0.15.2] would require
│ │ └─ python_abi 3.11.* *_cp311, which can be installed;
│ └─ scipy with the potential options
│ ├─ scipy [1.10.0|1.10.1|...|1.9.3] would require
│ │ └─ python >=3.8,<3.9.0a0 , which can be installed;
│ ├─ scipy [1.10.0|1.10.1|...|1.9.3] would require
│ │ └─ python >=3.9,<3.10.0a0 , which can be installed;
│ ├─ scipy [1.10.0|1.10.1|...|1.9.3] would require
│ │ └─ python >=3.10,<3.11.0a0 *_cpython, which can be installed;
│ ├─ scipy [1.10.0|1.10.1|...|1.9.3] would require
│ │ └─ python >=3.8,<3.9.0a0 *_cpython, which can be installed;
│ ├─ scipy [1.10.0|1.10.1|...|1.9.3] would require
│ │ └─ python >=3.9,<3.10.0a0 *_cpython, which can be installed;
│ ├─ scipy [1.10.0|1.10.1|...|1.9.3] would require
│ │ └─ python >=3.11,<3.12.0a0 *_cpython, which can be installed;
│ ├─ scipy 1.11.3 would require
│ │ └─ python >=3.12,<3.13.0a0 *_cpython, which requires
│ │ └─ python_abi 3.12.* *_cp312, which conflicts with any installable versions previously reported;
│ ├─ scipy [1.10.0|1.10.1|...|1.9.3] would require
│ │ └─ python >=3.10,<3.11.0a0 , which can be installed;
│ └─ scipy [1.10.0|1.10.1|1.11.1|1.9.3] would require
│ └─ python >=3.11,<3.12.0a0 , which can be installed;
└─ python 3.12** is uninstallable because there are no viable options
├─ python 3.12.0 conflicts with any installable versions previously reported;
├─ python 3.12.0, which cannot be installed (as previously explained);
└─ python 3.12.0rc3 would require
└─ _python_rc , which does not exist (perhaps a missing channel).
I wonder if python 3.12.0 conflicts with any installable versions previously reported;
is because we did not explicitly add python 3.12
here:
https://github.com/openPMD/openPMD-viewer/blob/dev/setup.py#L65
Hi there,
Python 3.12 was just released and it will take a while until open-source distributions (PyPI, conda, etc.) have rolled out all dependencies for it.
We got our migration PR for openPMD-api - it just came in today 🎉 so we should have packages for it in a few hrs:
conda-forge/openpmd-api-feedstock#110
openPMD-viewer is a pure Python package, thus it should work once the openPMD-api buildstock has built the 3.12 packages and distributed them to the web (this also takes a few hours, because there is another layer of caching in content delivery networks for these binary packages that refreshes in regular intervals).
Let me know if this works if you try again tomorrow / on Monday.
Separately of conda, we will also need to roll out PyPI wheels for openPMD-api, in case you were wondering :)
(I'll take PyPI on next week in openPMD/openPMD-api#1543)
I wonder if python 3.12.0 conflicts with any installable versions previously reported; is because we did not explicitly add python 3.12 here:
https://github.com/openPMD/openPMD-viewer/blob/dev/setup.py#L65
No, that is just meta-data listed on PyPI as a category.
The line that is evaluated for Python version compatibility is this one:
Line 50 in b36dc43
It is best practice to keep it unconstrained for newer versions.
@max-lehman14 @PrometheusPi I believe this problem is solved. Let me know if Python 3.12 now works for you as well and we can close this :)
@ax3l sorry for the late reply. I can confirm that installing openPMD-viewer with python 3.12.0 works now fine (on MacOS).