[petsc-dev] Problem pip installing petsc4py on existing PETSc installation
Satish Balay
balay.anl at fastmail.org
Thu Aug 28 11:51:27 CDT 2025
On Thu, 28 Aug 2025, Satish Balay wrote:
>
> Likely:
>
> pip install -v cython=3.0.12 petsc4py==3.21.1
https://urldefense.us/v3/__https://petsc.org/release/petsc4py/install.html__;!!G_uCfscf7eWS!eCUZ22p0MiJ-X_W-Vus5UnHOi2nyFX5fV6RX4rwerkfL7MQId7005WYh9gSKXFTle6g6uMAvrdaYUnwWkB_JAX8TjQ$
suggests:
$ python -m pip install src/binding/petsc4py
However:
>>>>
balay at pj02:~/petsc$ which cython
~/.local/bin/cython
balay at pj02:~/petsc$ cython --version
Cython version 3.0.12
balay at pj02:~/petsc$
balay at pj02:~/petsc$ PETSC_DIR=/home/balay/petsc PETSC_ARCH=arch-linux-c-debug python -m pip install --verbose src/binding/petsc4py
Using pip 23.3.2 from /usr/lib/python3.12/site-packages/pip (python 3.12)
Defaulting to user installation because normal site-packages is not writeable
Processing ./src/binding/petsc4py
Running command pip subprocess to install build dependencies
Collecting cython>=3
Downloading cython-3.1.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (4.7 kB)
Collecting numpy
Downloading numpy-2.3.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (62 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 62.1/62.1 kB 2.1 MB/s eta 0:00:00
Collecting setuptools
Downloading setuptools-80.9.0-py3-none-any.whl.metadata (6.6 kB)
Downloading cython-3.1.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (3.3 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.3/3.3 MB 8.3 MB/s eta 0:00:00
Downloading numpy-2.3.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (16.6 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 16.6/16.6 MB 8.0 MB/s eta 0:00:00
Downloading setuptools-80.9.0-py3-none-any.whl (1.2 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 8.9 MB/s eta 0:00:00
Installing collected packages: setuptools, numpy, cython
Successfully installed cython-3.1.3 numpy-2.3.2 setuptools-80.9.0
....
<<<<
I'm not sure why `3.0.12` is not satisfying the `cython>=3` requirement - and `cython-3.1.3` is installed for this requirement
Ok - try to force 3.0.12:
>>>
balay at pj02:~/petsc$ git diff
diff --git a/src/binding/petsc4py/pyproject.toml b/src/binding/petsc4py/pyproject.toml
index 6987c0389ed..35b08945f2a 100644
--- a/src/binding/petsc4py/pyproject.toml
+++ b/src/binding/petsc4py/pyproject.toml
@@ -1,6 +1,6 @@
[build-system]
requires = [
- "cython >= 3",
+ "cython == 3.0.12",
"numpy",
"setuptools",
]
balay at pj02:~/petsc$ PETSC_DIR=/home/balay/petsc PETSC_ARCH=arch-linux-c-debug python -m pip install --verbose src/binding/petsc4py
Using pip 23.3.2 from /usr/lib/python3.12/site-packages/pip (python 3.12)
Defaulting to user installation because normal site-packages is not writeable
Processing ./src/binding/petsc4py
Running command pip subprocess to install build dependencies
Collecting cython==3.0.12
Downloading Cython-3.0.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (3.3 kB)
Collecting numpy
Downloading numpy-2.3.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (62 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 62.1/62.1 kB 1.9 MB/s eta 0:00:00
Collecting setuptools
Downloading setuptools-80.9.0-py3-none-any.whl.metadata (6.6 kB)
Downloading Cython-3.0.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.5 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.5/3.5 MB 41.4 MB/s eta 0:00:00
Downloading numpy-2.3.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (16.6 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 16.6/16.6 MB 4.9 MB/s eta 0:00:00
Downloading setuptools-80.9.0-py3-none-any.whl (1.2 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 5.2 MB/s eta 0:00:00
Installing collected packages: setuptools, numpy, cython
Successfully installed cython-3.0.12 numpy-2.3.2 setuptools-80.9.0
...
...
Building wheel for petsc4py (pyproject.toml) ... done
Created wheel for petsc4py: filename=petsc4py-3.21.6-cp312-cp312-linux_x86_64.whl size=11282654 sha256=462b32dc3706d841a0fca5c7e9ba7b6127b0633cd943eef3784dc8f956375c1b
Stored in directory: /tmp/pip-ephem-wheel-cache-du9_e3hc/wheels/ab/ca/ed/9a2ee0271ce3654f467915ae1f28d46ace120416127b0c8cf1
Successfully built petsc4py
Installing collected packages: petsc4py
Successfully installed petsc4py-3.21.6
balay at pj02:~/petsc$ pip list --user
Package Version
-------- -------
Cython 3.0.12
petsc4py 3.21.6
balay at pj02:~/petsc$ git branch
* release-3.21
balay at pj02:~/petsc$
>>>>
Ok - now 3.0.12 is getting used (the local install is skipped again - and a new pkg is downloaded/installed as part of the build?) , and the build is now successful
Satish
More information about the petsc-dev
mailing list