pyscf / pyscf-forge

pyscf-forge is a staging ground for code that may be suitable for pyscf-core
Apache License 2.0
27 stars 23 forks source link

Supporting more current Python versions #67

Open MatthewRHermes opened 2 months ago

MatthewRHermes commented 2 months ago

We currently only test this module in github actions against Python version 3.7, which is older than any of the Python versions tested in the core modules. We could move that up a little bit, but pretty soon we run into problems:

  1. numpy 2.0: breaks trexio
  2. scipy 1.14: breaks pyscf 2.6.2 (current pip release; the problems are long solved on the github but pip hasn't gotten an update since June and it would take way too long to compile pyscf from source in pyscf-forge actions every time)
matthew-hennefarth commented 2 months ago

Seems likely that PySCF 2.7 will be released soon.

q-posev commented 2 months ago

Hello @MatthewRHermes , Following the recent integration of TREXIO in PySCF, we made an update in our release pipeline. We now support Python versions 3.8-3.13 for manylinux x86_64 builds, 3.8-3.12 for macos x86_64 and 3.9-3.12 for macos arm64. We have also removed numpy<2 constraint and we have successfully tested TREXIO with numpy 2 on a bunch of architectures. Long story short, we released TREXIO v.2.5.0 together with PyPI wheels, which contain all aforementioned changes. So TREXIO should not be a blocking dependency for PySCF. If you encounter any issues with TREXIO v.2.5.0 - please let us know! Tagging @scemama

MatthewRHermes commented 2 months ago

Huh, then I wonder why this failed: https://github.com/pyscf/pyscf-forge/actions/runs/10926730007/job/30331284727

q-posev commented 2 months ago

This is because as you say, you still use python 3.7 in the CI which reached EOL and for which we do not release the wheels anymore. TREXIO 2.5 wheels are compatible with python 3.8+.

The error message in the CI is quite clear - the HDF5 backend is not enabled. This has nothing to do with the numpy version because it is due to the fact that pip proceeded to download and install trexio from distribution tarball instead of binary wheel. To help pip find HDF5 at build time - you would need to set two env variables as indicated in Python README. Hope it helps.