ViennaRNA / forgi

An RNA manipulation library.
GNU General Public License v3.0
51 stars 30 forks source link

Pip install failed on Python 3.11 #55

Closed GabLoyer closed 3 months ago

GabLoyer commented 9 months ago

Trying to install via Pypi on Python 3.11 result in an error (running on OSX M1).

> pip install forgi               
Collecting forgi
  Using cached forgi-2.2.2.tar.gz (26.6 MB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
  Preparing metadata (pyproject.toml) ... done
Requirement already satisfied: numpy>=1.10.0 in /Users/gloyer/.pyenv/versions/3.11.3/envs/RNA3.11/lib/python3.11/site-packages (from forgi) (1.26.2)
Requirement already satisfied: scipy>=0.19.1 in /Users/gloyer/.pyenv/versions/3.11.3/envs/RNA3.11/lib/python3.11/site-packages (from forgi) (1.11.4)
Collecting pandas>=0.20 (from forgi)
  Using cached pandas-2.1.3-cp311-cp311-macosx_11_0_arm64.whl.metadata (18 kB)
Collecting future (from forgi)
  Using cached future-0.18.3-py3-none-any.whl
Collecting networkx>=2.0 (from forgi)
  Using cached networkx-3.2.1-py3-none-any.whl.metadata (5.2 kB)
Collecting biopython (from forgi)
  Using cached biopython-1.81-cp311-cp311-macosx_13_0_arm64.whl
Collecting appdirs>=1.4 (from forgi)
  Using cached appdirs-1.4.4-py2.py3-none-any.whl (9.6 kB)
Collecting logging-exceptions>=0.1.9 (from forgi)
  Using cached logging_exceptions-0.1.9-py3-none-any.whl
Requirement already satisfied: cython in /Users/gloyer/.pyenv/versions/3.11.3/envs/RNA3.11/lib/python3.11/site-packages (from forgi) (3.0.6)
Collecting python-dateutil>=2.8.2 (from pandas>=0.20->forgi)
  Using cached python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
Collecting pytz>=2020.1 (from pandas>=0.20->forgi)
  Using cached pytz-2023.3.post1-py2.py3-none-any.whl.metadata (22 kB)
Collecting tzdata>=2022.1 (from pandas>=0.20->forgi)
  Using cached tzdata-2023.3-py2.py3-none-any.whl (341 kB)
Requirement already satisfied: six>=1.5 in /Users/gloyer/.pyenv/versions/3.11.3/envs/RNA3.11/lib/python3.11/site-packages (from python-dateutil>=2.8.2->pandas>=0.20->forgi) (1.16.0)
Using cached networkx-3.2.1-py3-none-any.whl (1.6 MB)
Using cached pandas-2.1.3-cp311-cp311-macosx_11_0_arm64.whl (10.8 MB)
Using cached pytz-2023.3.post1-py2.py3-none-any.whl (502 kB)
Building wheels for collected packages: forgi
  Building wheel for forgi (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Building wheel for forgi (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [131 lines of output]
      fatal: not a git repository (or any of the parent directories): .git
      INFO:root:running bdist_wheel
      INFO:root:running build
      INFO:root:running build_py
      INFO:root:creating build
      INFO:root:creating build/lib.macosx-13.0-arm64-cpython-311
      INFO:root:creating build/lib.macosx-13.0-arm64-cpython-311/forgi
      INFO:root:copying forgi/config.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi
      INFO:root:copying forgi/whitelist.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi
      INFO:root:copying forgi/__init__.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi
      INFO:root:creating build/lib.macosx-13.0-arm64-cpython-311/forgi/graph
      INFO:root:copying forgi/graph/sequence.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/graph
      INFO:root:copying forgi/graph/bulge_graph.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/graph
      INFO:root:copying forgi/graph/_graph_construction.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/graph
      INFO:root:copying forgi/graph/__init__.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/graph
      INFO:root:copying forgi/graph/_cofold.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/graph
      INFO:root:copying forgi/graph/transform_graphs.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/graph
      INFO:root:copying forgi/graph/residue.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/graph
      INFO:root:copying forgi/graph/_basegraph.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/graph
      INFO:root:creating build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee
      INFO:root:copying forgi/threedee/__init__.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee
      INFO:root:creating build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/model
      INFO:root:copying forgi/threedee/model/coarse_grain.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/model
      INFO:root:copying forgi/threedee/model/linecloud.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/model
      INFO:root:copying forgi/threedee/model/_ensemble2.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/model
      INFO:root:copying forgi/threedee/model/similarity.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/model
      INFO:root:copying forgi/threedee/model/__init__.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/model
      INFO:root:copying forgi/threedee/model/descriptors.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/model
      INFO:root:copying forgi/threedee/model/transform_cg.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/model
      INFO:root:copying forgi/threedee/model/_ensemble.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/model
      INFO:root:copying forgi/threedee/model/stats.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/model
      INFO:root:creating build/lib.macosx-13.0-arm64-cpython-311/forgi/utilities
      INFO:root:copying forgi/utilities/stuff.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/utilities
      INFO:root:copying forgi/utilities/observedDict.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/utilities
      INFO:root:copying forgi/utilities/numbered_dotbracket.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/utilities
      INFO:root:copying forgi/utilities/graph.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/utilities
      INFO:root:copying forgi/utilities/__init__.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/utilities
      INFO:root:copying forgi/utilities/debug.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/utilities
      INFO:root:copying forgi/utilities/exceptions.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/utilities
      INFO:root:copying forgi/utilities/commandline_utils.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/utilities
      INFO:root:creating build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/utilities
      INFO:root:copying forgi/threedee/utilities/_dssr.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/utilities
      INFO:root:copying forgi/threedee/utilities/vector.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/utilities
      INFO:root:copying forgi/threedee/utilities/mcannotate.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/utilities
      INFO:root:copying forgi/threedee/utilities/graph_pdb.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/utilities
      INFO:root:copying forgi/threedee/utilities/modified_res_lookup.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/utilities
      INFO:root:copying forgi/threedee/utilities/__init__.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/utilities
      INFO:root:copying forgi/threedee/utilities/pdb.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/utilities
      INFO:root:copying forgi/threedee/utilities/average_stem_vres_atom_positions.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/utilities
      INFO:root:copying forgi/threedee/utilities/modified_res.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/utilities
      INFO:root:copying forgi/threedee/utilities/my_math.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/utilities
      INFO:root:copying forgi/threedee/utilities/virtual_residues.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/utilities
      INFO:root:creating build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/classification
      INFO:root:copying forgi/threedee/classification/aminor.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/classification
      INFO:root:copying forgi/threedee/classification/__init__.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/classification
      INFO:root:creating build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/classification/_training
      INFO:root:copying forgi/threedee/classification/_training/_parse_utils.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/classification/_training
      INFO:root:copying forgi/threedee/classification/_training/train_aminor.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/classification/_training
      INFO:root:copying forgi/threedee/classification/_training/__init__.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/classification/_training
      INFO:root:copying forgi/threedee/classification/_training/aminor_training.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/classification/_training
      INFO:root:creating build/lib.macosx-13.0-arm64-cpython-311/forgi/_k2n_standalone
      INFO:root:copying forgi/_k2n_standalone/rna2d.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/_k2n_standalone
      INFO:root:copying forgi/_k2n_standalone/knots.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/_k2n_standalone
      INFO:root:copying forgi/_k2n_standalone/dict2d.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/_k2n_standalone
      INFO:root:copying forgi/_k2n_standalone/__init__.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/_k2n_standalone
      INFO:root:copying forgi/_k2n_standalone/knotted2nested.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/_k2n_standalone
      INFO:root:copying forgi/_k2n_standalone/output.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/_k2n_standalone
      INFO:root:copying forgi/_k2n_standalone/ct_simple.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/_k2n_standalone
      INFO:root:copying forgi/_k2n_standalone/bpseq.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/_k2n_standalone
      INFO:root:creating build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/visual
      INFO:root:copying forgi/threedee/visual/__init__.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/visual
      INFO:root:copying forgi/threedee/visual/pymol.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/visual
      INFO:root:creating build/lib.macosx-13.0-arm64-cpython-311/forgi/visual
      INFO:root:copying forgi/visual/__init__.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/visual
      INFO:root:copying forgi/visual/mplotlib.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/visual
      INFO:root:copying forgi/visual/fornac.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/visual
      INFO:root:creating build/lib.macosx-13.0-arm64-cpython-311/forgi/projection
      INFO:root:copying forgi/projection/hausdorff.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/projection
      INFO:root:copying forgi/projection/__init__.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/projection
      INFO:root:copying forgi/projection/projection2d.py -> build/lib.macosx-13.0-arm64-cpython-311/forgi/projection
      INFO:root:creating build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/data
      INFO:root:copying forgi/threedee/data/ideal_1_4_5_8.pdb -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/data
      INFO:root:copying forgi/threedee/data/ideal_1_3_4_6.pdb -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/data
      INFO:root:copying forgi/threedee/data/ideal_1_39_40_78.pdb -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/data
      INFO:root:copying forgi/threedee/data/ideal_1_11_12_22.pdb -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/data
      INFO:root:copying forgi/threedee/data/ideal_1_23_24_46.pdb -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/data
      INFO:root:copying forgi/threedee/data/ideal_1_25_26_50.pdb -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/data
      INFO:root:copying forgi/threedee/data/ideal_1_20_21_40.pdb -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/data
      INFO:root:copying forgi/threedee/data/ideal_1_24_25_48.pdb -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/data
      INFO:root:copying forgi/threedee/data/ideal_1_36_37_72.pdb -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/data
      INFO:root:copying forgi/threedee/data/ideal_1_17_18_34.pdb -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/data
      INFO:root:copying forgi/threedee/data/ideal_1_6_7_12.pdb -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/data
      INFO:root:copying forgi/threedee/data/ideal_1_40_41_80.pdb -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/data
      INFO:root:copying forgi/threedee/data/ideal_1_19_20_38.pdb -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/data
      INFO:root:copying forgi/threedee/data/ideal_1_1_2_2.pdb -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/data
      INFO:root:copying forgi/threedee/data/ideal_1_9_10_18.pdb -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/data
      INFO:root:copying forgi/threedee/data/ideal_1_12_13_24.pdb -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/data
      INFO:root:copying forgi/threedee/data/ideal_1_18_19_36.pdb -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/data
      INFO:root:copying forgi/threedee/data/ideal_1_26_27_52.pdb -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/data
      INFO:root:copying forgi/threedee/data/ideal_1_34_35_68.pdb -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/data
      INFO:root:copying forgi/threedee/data/ideal_1_30_31_60.pdb -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/data
      INFO:root:copying forgi/threedee/data/ideal_1_5_6_10.pdb -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/data
      INFO:root:copying forgi/threedee/data/ideal_1_2_3_4.pdb -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/data
      INFO:root:copying forgi/threedee/data/ideal_1_33_34_66.pdb -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/data
      INFO:root:copying forgi/threedee/data/ideal_1_35_36_70.pdb -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/data
      INFO:root:copying forgi/threedee/data/ideal_1_16_17_32.pdb -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/data
      INFO:root:copying forgi/threedee/data/ideal_1_8_9_16.pdb -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/data
      INFO:root:copying forgi/threedee/data/ideal_1_31_32_62.pdb -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/data
      INFO:root:copying forgi/threedee/data/ideal_1_27_28_54.pdb -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/data
      INFO:root:copying forgi/threedee/data/ideal_1_28_29_56.pdb -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/data
      INFO:root:copying forgi/threedee/data/ideal_1_22_23_44.pdb -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/data
      INFO:root:copying forgi/threedee/data/ideal_1_21_22_42.pdb -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/data
      INFO:root:copying forgi/threedee/data/ideal_1_15_16_30.pdb -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/data
      INFO:root:copying forgi/threedee/data/ideal_1_13_14_26.pdb -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/data
      INFO:root:copying forgi/threedee/data/ideal_1_7_8_14.pdb -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/data
      INFO:root:copying forgi/threedee/data/ideal_1_14_15_28.pdb -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/data
      INFO:root:copying forgi/threedee/data/ideal_1_29_30_58.pdb -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/data
      INFO:root:copying forgi/threedee/data/ideal_1_10_11_20.pdb -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/data
      INFO:root:copying forgi/threedee/data/ideal_1_38_39_76.pdb -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/data
      INFO:root:copying forgi/threedee/data/ideal_1_32_33_64.pdb -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/data
      INFO:root:copying forgi/threedee/data/ideal_1_37_38_74.pdb -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/data
      INFO:root:copying forgi/threedee/data/average_atom_positions.json -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/data
      INFO:root:copying forgi/threedee/data/aminor_geometries.csv -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/data
      INFO:root:copying forgi/threedee/data/aminor_params.json -> build/lib.macosx-13.0-arm64-cpython-311/forgi/threedee/data
      INFO:root:running build_ext
      /private/var/folders/k8/f7xqxdn53336gm533jt1lcsh0000gn/T/pip-build-env-_3k7jpih/normal/lib/python3.11/site-packages/Cython/Compiler/Main.py:381: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: /private/var/folders/k8/f7xqxdn53336gm533jt1lcsh0000gn/T/pip-install-alc9t2pv/forgi_3fb2f3d00fb54403ad06f640bc0cd19b/forgi/threedee/utilities/cytvec.pyx
        tree = Parsing.p_module(s, pxd, full_module_name)
      Compiling forgi/threedee/utilities/cytvec.pyx because it changed.
      [1/1] Cythonizing forgi/threedee/utilities/cytvec.pyx
      INFO:root:building 'forgi.threedee.utilities.cytvec' extension
      error: unknown file type '.pxd' (from 'forgi/threedee/utilities/broken_ml_core_py.pxd')
      [end of output]

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

I dig a bit and haven't got success while pre-installing numpy and Cython as some people suggest.

Installation works fine on Python 3.10

Thanks for looking at it! :)

Bernhard10 commented 7 months ago

I found the reason. It seems that Cython > 3.0 no longer accepts pxd files as arguments to the extension module list. I will update the setup.py file to also work with newer cython versions.

PaClimaco commented 4 months ago

I am experiencing the same problem with Python 3.10.14. Do you have any updates on this issue?

Bernhard10 commented 3 months ago

With version 2.2.2 of Forgi, this should be fixed