p5py / p5

p5 is a Python package based on the core ideas of Processing.
https://p5.readthedocs.io
GNU General Public License v3.0
728 stars 120 forks source link

Cannot install p5 package with Python 3.12 #469

Open e2manuel62 opened 6 months ago

e2manuel62 commented 6 months ago

Describe the bug The installation of 'p5' package with Python 3.12 is unsuccessful because of unresolved dependencies, concerning in particular the 'metadata' package.

pip install metadata

Collecting metadata Using cached metadata-0.2.tar.gz (1.5 kB) Installing build dependencies ... done Getting requirements to build wheel ... done Installing backend dependencies ... done Preparing metadata (pyproject.toml) ... done INFO: pip is looking at multiple versions of metadata to determine which version is compatible with other requirements. This could take a while. Using cached metadata-0.1.1.tar.gz (1.5 kB) Installing build dependencies ... done Getting requirements to build wheel ... done Installing backend dependencies ... done Preparing metadata (pyproject.toml) ... done Using cached metadata-0.1.tar.gz (1.1 kB) Installing build dependencies ... done Getting requirements to build wheel ... done Installing backend dependencies ... done Preparing metadata (pyproject.toml) ... done ERROR: Cannot install metadata==0.1, metadata==0.1.1 and metadata==0.2 because these package versions have conflicting dependencies.

The conflict is caused by: metadata 0.2 depends on hachoir-core==1.3.3 metadata 0.1.1 depends on hachoir-core==1.3.3 metadata 0.1 depends on hachoir-core==1.3.3

To fix this you could try to:

  1. loosen the range of package versions you've specified
  2. remove package versions to allow pip attempt to solve the dependency conflict

ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts

To Reproduce pip install p5 pip install metadata

Expected behavior Successful installation of 'p5' package

Screenshots

System information:

Additional context Virtual environment created with pyenv

github-actions[bot] commented 6 months ago

Thank you for submitting your first issue to p5py

tushar5526 commented 6 months ago

Hi, we don't yet support python3.12 - https://github.com/p5py/p5/blob/master/.github/workflows/build-tests.yml. Latest supported version is 3.11

mhechthz commented 5 months ago

Well, further more the package also doesn't properly install with Python 3.11 (windows) but only with Python 3.10. So I manually copied it to Python 3.12 (I have 3.10, 3.11 and 3.12 on my machine), added all needed libraries and ignored the pip warnings on incompatible libraries.

Then the example did work. So the library is more ore less compatible with Python 3.12 and making it installable should be managable.

tushar5526 commented 5 months ago

Unfortunately, I don't have a windows machine with me to test this. I would like a PR to support python 3.12

mhechthz commented 5 months ago

Ok, the installation fails because of dependency on old Pillow and vispy that cannot be installed on Python 3.11.

I can separately install Pillow 10.2.0 and vispy 0.14.2 on Python 3.11 but p5 requires Pillow 9.0.1 and vispy 0.10.0 that cannot run with Python 3.11

I changed this in METADATA:

Requires-Dist: Pillow >=9.0.1
Requires-Dist: vispy >=0.10.0

and than installing works with Python 3.11 and at least basically the library seems to works.

For Python 3.12 at least also Requires-Dist: skia-python is necessary (without version, since the new version 124.0b7 is not recognized as >= 85.0 but my Python 3.11 version of skia is 87.5 which is ok) but finally I fail on dependency for PyOpenGL-accelerate which cannot be installed (at my system) with Python 3.12.

BhaavikhShonal commented 4 months ago

Hello I have this issue as well. I tried installing Vispy as well but it says

"""

  <string>:45: RuntimeWarning: Pillow 9.0.1 does not support Python 3.12 and does not provide prebuilt Windows binaries. We do not recommend building from source on Windows.
  [end of output]

note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building wheel for Pillow Failed to build Pillow ERROR: Could not build wheels for Pillow, which is required to install pyproject.toml-based projects

"""

Please can you help????