Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issues installing via conda #397

Closed
max-lehman14 opened this issue Oct 4, 2023 · 8 comments
Closed

Issues installing via conda #397

max-lehman14 opened this issue Oct 4, 2023 · 8 comments
Assignees
Labels

Comments

@max-lehman14
Copy link

max-lehman14 commented Oct 4, 2023

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
@max-lehman14 max-lehman14 changed the title Issues installing via condo Issues installing via conda Oct 4, 2023
@RemiLehe
Copy link
Member

RemiLehe commented Oct 4, 2023

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) ?

@PrometheusPi
Copy link
Member

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.

@PrometheusPi
Copy link
Member

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.

@RemiLehe
Copy link
Member

RemiLehe commented Oct 6, 2023

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).

@RemiLehe
Copy link
Member

RemiLehe commented Oct 6, 2023

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

@ax3l
Copy link
Member

ax3l commented Oct 6, 2023

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:

python_requires='>=3.8',

It is best practice to keep it unconstrained for newer versions.

@ax3l
Copy link
Member

ax3l commented Oct 20, 2023

@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 ax3l self-assigned this Oct 20, 2023
@ax3l ax3l closed this as completed Oct 25, 2023
@PrometheusPi
Copy link
Member

@ax3l sorry for the late reply. I can confirm that installing openPMD-viewer with python 3.12.0 works now fine (on MacOS).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants