Could not build wheels for parmed, which is required to install pyproject.toml-based projects

Hi!
When I try to install dash-bio package I constantly get this error:

C:\Users\pmbm1>pip install dash-bio==1.0.1
Collecting dash-bio==1.0.1
Using cached dash_bio-1.0.1-py3-none-any.whl
Collecting dash>=1.6.1 (from dash-bio==1.0.1)
Using cached dash-2.9.3-py3-none-any.whl (10.2 MB)
Requirement already satisfied: pandas in c:\users\pmbm1\appdata\local\programs\python\python311\lib\site-packages (from dash-bio==1.0.1) (1.5.3)
Requirement already satisfied: scipy in c:\users\pmbm1\appdata\local\programs\python\python311\lib\site-packages (from dash-bio==1.0.1) (1.10.1)
Collecting scikit-learn>=0.20.1 (from dash-bio==1.0.1)
Using cached scikit_learn-1.2.2-cp311-cp311-win_amd64.whl (8.3 MB)
Requirement already satisfied: colour in c:\users\pmbm1\appdata\local\programs\python\python311\lib\site-packages (from dash-bio==1.0.1) (0.1.5)
Collecting GEOparse>=1.1.0 (from dash-bio==1.0.1)
Using cached GEOparse-2.0.3-py3-none-any.whl
Collecting jsonschema (from dash-bio==1.0.1)
Using cached jsonschema-4.17.3-py3-none-any.whl (90 kB)
Collecting parmed (from dash-bio==1.0.1)
Using cached ParmEd-4.1.0.tar.gz (2.2 MB)
Preparing metadata (setup.py) … done
Collecting periodictable (from dash-bio==1.0.1)
Using cached periodictable-1.6.1-py2.py3-none-any.whl (752 kB)
Requirement already satisfied: requests in c:\users\pmbm1\appdata\local\programs\python\python311\lib\site-packages (from dash-bio==1.0.1) (2.28.2)
Collecting biopython>=1.77 (from dash-bio==1.0.1)
Using cached biopython-1.81-cp311-cp311-win_amd64.whl (2.7 MB)
Requirement already satisfied: numpy in c:\users\pmbm1\appdata\local\programs\python\python311\lib\site-packages (from biopython>=1.77->dash-bio==1.0.1) (1.24.1)
Collecting Flask>=1.0.4 (from dash>=1.6.1->dash-bio==1.0.1)
Using cached Flask-2.2.3-py3-none-any.whl (101 kB)
Collecting plotly>=5.0.0 (from dash>=1.6.1->dash-bio==1.0.1)
Using cached plotly-5.14.1-py2.py3-none-any.whl (15.3 MB)
Requirement already satisfied: dash-html-components==2.0.0 in c:\users\pmbm1\appdata\local\programs\python\python311\lib\site-packages (from dash>=1.6.1->dash-bio==1.0.1) (2.0.0)
Requirement already satisfied: dash-core-components==2.0.0 in c:\users\pmbm1\appdata\local\programs\python\python311\lib\site-packages (from dash>=1.6.1->dash-bio==1.0.1) (2.0.0)
Requirement already satisfied: dash-table==5.0.0 in c:\users\pmbm1\appdata\local\programs\python\python311\lib\site-packages (from dash>=1.6.1->dash-bio==1.0.1) (5.0.0)
Requirement already satisfied: tqdm>=4.31.1 in c:\users\pmbm1\appdata\local\programs\python\python311\lib\site-packages (from GEOparse>=1.1.0->dash-bio==1.0.1) (4.65.0)
Requirement already satisfied: python-dateutil>=2.8.1 in c:\users\pmbm1\appdata\local\programs\python\python311\lib\site-packages (from pandas->dash-bio==1.0.1) (2.8.2)
Requirement already satisfied: pytz>=2020.1 in c:\users\pmbm1\appdata\local\programs\python\python311\lib\site-packages (from pandas->dash-bio==1.0.1) (2022.7.1)
Requirement already satisfied: charset-normalizer<4,>=2 in c:\users\pmbm1\appdata\local\programs\python\python311\lib\site-packages (from requests->dash-bio==1.0.1) (3.1.0)
Requirement already satisfied: idna<4,>=2.5 in c:\users\pmbm1\appdata\local\programs\python\python311\lib\site-packages (from requests->dash-bio==1.0.1) (3.4)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in c:\users\pmbm1\appdata\local\programs\python\python311\lib\site-packages (from requests->dash-bio==1.0.1) (1.26.15)
Requirement already satisfied: certifi>=2017.4.17 in c:\users\pmbm1\appdata\local\programs\python\python311\lib\site-packages (from requests->dash-bio==1.0.1) (2022.12.7)
Collecting joblib>=1.1.1 (from scikit-learn>=0.20.1->dash-bio==1.0.1)
Using cached joblib-1.2.0-py3-none-any.whl (297 kB)
Requirement already satisfied: threadpoolctl>=2.0.0 in c:\users\pmbm1\appdata\local\programs\python\python311\lib\site-packages (from scikit-learn>=0.20.1->dash-bio==1.0.1) (3.1.0)
Requirement already satisfied: attrs>=17.4.0 in c:\users\pmbm1\appdata\local\programs\python\python311\lib\site-packages (from jsonschema->dash-bio==1.0.1) (22.2.0)
Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in c:\users\pmbm1\appdata\local\programs\python\python311\lib\site-packages (from jsonschema->dash-bio==1.0.1) (0.19.3)
Requirement already satisfied: pyparsing in c:\users\pmbm1\appdata\local\programs\python\python311\lib\site-packages (from periodictable->dash-bio==1.0.1) (3.0.9)
Collecting Werkzeug>=2.2.2 (from Flask>=1.0.4->dash>=1.6.1->dash-bio==1.0.1)
Using cached Werkzeug-2.2.3-py3-none-any.whl (233 kB)
Collecting Jinja2>=3.0 (from Flask>=1.0.4->dash>=1.6.1->dash-bio==1.0.1)
Using cached Jinja2-3.1.2-py3-none-any.whl (133 kB)
Collecting itsdangerous>=2.0 (from Flask>=1.0.4->dash>=1.6.1->dash-bio==1.0.1)
Using cached itsdangerous-2.1.2-py3-none-any.whl (15 kB)
Collecting click>=8.0 (from Flask>=1.0.4->dash>=1.6.1->dash-bio==1.0.1)
Using cached click-8.1.3-py3-none-any.whl (96 kB)
Requirement already satisfied: tenacity>=6.2.0 in c:\users\pmbm1\appdata\local\programs\python\python311\lib\site-packages (from plotly>=5.0.0->dash>=1.6.1->dash-bio==1.0.1) (8.2.2)
Requirement already satisfied: packaging in c:\users\pmbm1\appdata\local\programs\python\python311\lib\site-packages (from plotly>=5.0.0->dash>=1.6.1->dash-bio==1.0.1) (23.0)
Requirement already satisfied: six>=1.5 in c:\users\pmbm1\appdata\local\programs\python\python311\lib\site-packages (from python-dateutil>=2.8.1->pandas->dash-bio==1.0.1) (1.16.0)
Requirement already satisfied: colorama in c:\users\pmbm1\appdata\local\programs\python\python311\lib\site-packages (from tqdm>=4.31.1->GEOparse>=1.1.0->dash-bio==1.0.1) (0.4.6)
Collecting MarkupSafe>=2.0 (from Jinja2>=3.0->Flask>=1.0.4->dash>=1.6.1->dash-bio==1.0.1)
Using cached MarkupSafe-2.1.2-cp311-cp311-win_amd64.whl (16 kB)
Building wheels for collected packages: parmed
Building wheel for parmed (setup.py) … error
error: subprocess-exited-with-error

× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> [156 lines of output]
running bdist_wheel
running build
running build_py
creating build
creating build\lib.win-amd64-cpython-311
creating build\lib.win-amd64-cpython-311\parmed
copying parmed\constants.py → build\lib.win-amd64-cpython-311\parmed
copying parmed\exceptions.py → build\lib.win-amd64-cpython-311\parmed
copying parmed\geometry.py → build\lib.win-amd64-cpython-311\parmed
copying parmed\parameters.py → build\lib.win-amd64-cpython-311\parmed
copying parmed\periodic_table.py → build\lib.win-amd64-cpython-311\parmed
copying parmed\residue.py → build\lib.win-amd64-cpython-311\parmed
copying parmed\scripts.py → build\lib.win-amd64-cpython-311\parmed
copying parmed\structure.py → build\lib.win-amd64-cpython-311\parmed
copying parmed\symmetry.py → build\lib.win-amd64-cpython-311\parmed
copying parmed\topologyobjects.py → build\lib.win-amd64-cpython-311\parmed
copying parmed\vec3.py → build\lib.win-amd64-cpython-311\parmed
copying parmed_version.py → build\lib.win-amd64-cpython-311\parmed
copying parmed_init_.py → build\lib.win-amd64-cpython-311\parmed
creating build\lib.win-amd64-cpython-311\parmed\amber
copying parmed\amber\amberformat.py → build\lib.win-amd64-cpython-311\parmed\amber
copying parmed\amber\asciicrd.py → build\lib.win-amd64-cpython-311\parmed\amber
copying parmed\amber\mask.py → build\lib.win-amd64-cpython-311\parmed\amber
copying parmed\amber\netcdffiles.py → build\lib.win-amd64-cpython-311\parmed\amber
copying parmed\amber\offlib.py → build\lib.win-amd64-cpython-311\parmed\amber
copying parmed\amber\parameters.py → build\lib.win-amd64-cpython-311\parmed\amber
copying parmed\amber\readparm.py → build\lib.win-amd64-cpython-311\parmed\amber
copying parmed\amber\titratable_residues.py → build\lib.win-amd64-cpython-311\parmed\amber
copying parmed\amber_amberparm.py → build\lib.win-amd64-cpython-311\parmed\amber
copying parmed\amber_chamberparm.py → build\lib.win-amd64-cpython-311\parmed\amber
copying parmed\amber_tinkerparm.py → build\lib.win-amd64-cpython-311\parmed\amber
copying parmed\amber_init_.py → build\lib.win-amd64-cpython-311\parmed\amber
creating build\lib.win-amd64-cpython-311\parmed\modeller
copying parmed\modeller\residue.py → build\lib.win-amd64-cpython-311\parmed\modeller
copying parmed\modeller\standardtemplates.py → build\lib.win-amd64-cpython-311\parmed\modeller
copying parmed\modeller_init_.py → build\lib.win-amd64-cpython-311\parmed\modeller
creating build\lib.win-amd64-cpython-311\parmed\tinker
copying parmed\tinker\parameterfile.py → build\lib.win-amd64-cpython-311\parmed\tinker
copying parmed\tinker\system.py → build\lib.win-amd64-cpython-311\parmed\tinker
copying parmed\tinker\tinkerfiles.py → build\lib.win-amd64-cpython-311\parmed\tinker
copying parmed\tinker\topologyobjects.py → build\lib.win-amd64-cpython-311\parmed\tinker
copying parmed\tinker_init_.py → build\lib.win-amd64-cpython-311\parmed\tinker
creating build\lib.win-amd64-cpython-311\parmed\unit
copying parmed\unit\basedimension.py → build\lib.win-amd64-cpython-311\parmed\unit
copying parmed\unit\baseunit.py → build\lib.win-amd64-cpython-311\parmed\unit
copying parmed\unit\constants.py → build\lib.win-amd64-cpython-311\parmed\unit
copying parmed\unit\mymatrix.py → build\lib.win-amd64-cpython-311\parmed\unit
copying parmed\unit\prefix.py → build\lib.win-amd64-cpython-311\parmed\unit
copying parmed\unit\quantity.py → build\lib.win-amd64-cpython-311\parmed\unit
copying parmed\unit\standard_dimensions.py → build\lib.win-amd64-cpython-311\parmed\unit
copying parmed\unit\unit.py → build\lib.win-amd64-cpython-311\parmed\unit
copying parmed\unit\unit_definitions.py → build\lib.win-amd64-cpython-311\parmed\unit
copying parmed\unit\unit_math.py → build\lib.win-amd64-cpython-311\parmed\unit
copying parmed\unit\unit_operators.py → build\lib.win-amd64-cpython-311\parmed\unit
copying parmed\unit_init_.py → build\lib.win-amd64-cpython-311\parmed\unit
creating build\lib.win-amd64-cpython-311\parmed\amber\mdin
copying parmed\amber\mdin\cntrl.py → build\lib.win-amd64-cpython-311\parmed\amber\mdin
copying parmed\amber\mdin\ewald.py → build\lib.win-amd64-cpython-311\parmed\amber\mdin
copying parmed\amber\mdin\mdin.py → build\lib.win-amd64-cpython-311\parmed\amber\mdin
copying parmed\amber\mdin\pb.py → build\lib.win-amd64-cpython-311\parmed\amber\mdin
copying parmed\amber\mdin\qmmm.py → build\lib.win-amd64-cpython-311\parmed\amber\mdin
copying parmed\amber\mdin\typing.py → build\lib.win-amd64-cpython-311\parmed\amber\mdin
copying parmed\amber\mdin_init_.py → build\lib.win-amd64-cpython-311\parmed\amber\mdin
creating build\lib.win-amd64-cpython-311\parmed\charmm
copying parmed\charmm\charmmcrds.py → build\lib.win-amd64-cpython-311\parmed\charmm
copying parmed\charmm\parameters.py → build\lib.win-amd64-cpython-311\parmed\charmm
copying parmed\charmm\psf.py → build\lib.win-amd64-cpython-311\parmed\charmm
copying parmed\charmm_charmmfile.py → build\lib.win-amd64-cpython-311\parmed\charmm
copying parmed\charmm_init_.py → build\lib.win-amd64-cpython-311\parmed\charmm
creating build\lib.win-amd64-cpython-311\parmed\formats
creating build\lib.win-amd64-cpython-311\parmed\formats\pdbx
copying parmed\formats\pdbx\PdbxContainers.py → build\lib.win-amd64-cpython-311\parmed\formats\pdbx
copying parmed\formats\pdbx\PdbxReader.py → build\lib.win-amd64-cpython-311\parmed\formats\pdbx
copying parmed\formats\pdbx\PdbxWriter.py → build\lib.win-amd64-cpython-311\parmed\formats\pdbx
copying parmed\formats\pdbx_init_.py → build\lib.win-amd64-cpython-311\parmed\formats\pdbx
creating build\lib.win-amd64-cpython-311\parmed\rosetta
copying parmed\rosetta\pose.py → build\lib.win-amd64-cpython-311\parmed\rosetta
copying parmed\rosetta_init_.py → build\lib.win-amd64-cpython-311\parmed\rosetta
creating build\lib.win-amd64-cpython-311\parmed\rdkit
copying parmed\rdkit\rdkit.py → build\lib.win-amd64-cpython-311\parmed\rdkit
copying parmed\rdkit_init_.py → build\lib.win-amd64-cpython-311\parmed\rdkit
copying parmed\formats\mol2.py → build\lib.win-amd64-cpython-311\parmed\formats
copying parmed\formats\pdb.py → build\lib.win-amd64-cpython-311\parmed\formats
copying parmed\formats\pqr.py → build\lib.win-amd64-cpython-311\parmed\formats
copying parmed\formats\psf.py → build\lib.win-amd64-cpython-311\parmed\formats
copying parmed\formats\registry.py → build\lib.win-amd64-cpython-311\parmed\formats
copying parmed\formats\sdf.py → build\lib.win-amd64-cpython-311\parmed\formats
copying parmed\formats_init_.py → build\lib.win-amd64-cpython-311\parmed\formats
creating build\lib.win-amd64-cpython-311\parmed\utils
creating build\lib.win-amd64-cpython-311\parmed\utils\fortranformat
copying parmed\utils\fortranformat\config.py → build\lib.win-amd64-cpython-311\parmed\utils\fortranformat
copying parmed\utils\fortranformat\FortranRecordReader.py → build\lib.win-amd64-cpython-311\parmed\utils\fortranformat
copying parmed\utils\fortranformat\FortranRecordWriter.py → build\lib.win-amd64-cpython-311\parmed\utils\fortranformat
copying parmed\utils\fortranformat_edit_descriptors.py → build\lib.win-amd64-cpython-311\parmed\utils\fortranformat
copying parmed\utils\fortranformat_exceptions.py → build\lib.win-amd64-cpython-311\parmed\utils\fortranformat
copying parmed\utils\fortranformat_input.py → build\lib.win-amd64-cpython-311\parmed\utils\fortranformat
copying parmed\utils\fortranformat_lexer.py → build\lib.win-amd64-cpython-311\parmed\utils\fortranformat
copying parmed\utils\fortranformat_misc.py → build\lib.win-amd64-cpython-311\parmed\utils\fortranformat
copying parmed\utils\fortranformat_output.py → build\lib.win-amd64-cpython-311\parmed\utils\fortranformat
copying parmed\utils\fortranformat_parser.py → build\lib.win-amd64-cpython-311\parmed\utils\fortranformat
copying parmed\utils\fortranformat_init_.py → build\lib.win-amd64-cpython-311\parmed\utils\fortranformat
creating build\lib.win-amd64-cpython-311\parmed\openmm
copying parmed\openmm\parameters.py → build\lib.win-amd64-cpython-311\parmed\openmm
copying parmed\openmm\reporters.py → build\lib.win-amd64-cpython-311\parmed\openmm
copying parmed\openmm\topsystem.py → build\lib.win-amd64-cpython-311\parmed\openmm
copying parmed\openmm\utils.py → build\lib.win-amd64-cpython-311\parmed\openmm
copying parmed\openmm\xmlfile.py → build\lib.win-amd64-cpython-311\parmed\openmm
copying parmed\openmm_init_.py → build\lib.win-amd64-cpython-311\parmed\openmm
copying parmed\utils\decorators.py → build\lib.win-amd64-cpython-311\parmed\utils
copying parmed\utils\io.py → build\lib.win-amd64-cpython-311\parmed\utils
copying parmed\utils\netcdf.py → build\lib.win-amd64-cpython-311\parmed\utils
copying parmed\utils\pairlist.py → build\lib.win-amd64-cpython-311\parmed\utils
copying parmed\utils\pandautils.py → build\lib.win-amd64-cpython-311\parmed\utils
copying parmed\utils\timer.py → build\lib.win-amd64-cpython-311\parmed\utils
copying parmed\utils_init_.py → build\lib.win-amd64-cpython-311\parmed\utils
creating build\lib.win-amd64-cpython-311\parmed\gromacs
copying parmed\gromacs\gromacsgro.py → build\lib.win-amd64-cpython-311\parmed\gromacs
copying parmed\gromacs\gromacstop.py → build\lib.win-amd64-cpython-311\parmed\gromacs
copying parmed\gromacs_cpp.py → build\lib.win-amd64-cpython-311\parmed\gromacs
copying parmed\gromacs_gromacsfile.py → build\lib.win-amd64-cpython-311\parmed\gromacs
copying parmed\gromacs_init_.py → build\lib.win-amd64-cpython-311\parmed\gromacs
creating build\lib.win-amd64-cpython-311\parmed\tools
copying parmed\tools\actions.py → build\lib.win-amd64-cpython-311\parmed\tools
copying parmed\tools\add1264.py → build\lib.win-amd64-cpython-311\parmed\tools
copying parmed\tools\addljtype.py → build\lib.win-amd64-cpython-311\parmed\tools
copying parmed\tools\argumentlist.py → build\lib.win-amd64-cpython-311\parmed\tools
copying parmed\tools\changeradii.py → build\lib.win-amd64-cpython-311\parmed\tools
copying parmed\tools\checkvalidity.py → build\lib.win-amd64-cpython-311\parmed\tools
copying parmed\tools\exceptions.py → build\lib.win-amd64-cpython-311\parmed\tools
copying parmed\tools\logos.py → build\lib.win-amd64-cpython-311\parmed\tools
copying parmed\tools\parmed_cmd.py → build\lib.win-amd64-cpython-311\parmed\tools
copying parmed\tools\parmlist.py → build\lib.win-amd64-cpython-311\parmed\tools
copying parmed\tools_init_.py → build\lib.win-amd64-cpython-311\parmed\tools
creating build\lib.win-amd64-cpython-311\parmed\namd
copying parmed\namd\namdbinfiles.py → build\lib.win-amd64-cpython-311\parmed\namd
copying parmed\namd_init_.py → build\lib.win-amd64-cpython-311\parmed\namd
creating build\lib.win-amd64-cpython-311\parmed\tools\simulations
copying parmed\tools\simulations\openmm.py → build\lib.win-amd64-cpython-311\parmed\tools\simulations
copying parmed\tools\simulations\sanderapi.py → build\lib.win-amd64-cpython-311\parmed\tools\simulations
copying parmed\tools\simulations_init_.py → build\lib.win-amd64-cpython-311\parmed\tools\simulations
creating build\lib.win-amd64-cpython-311\parmed\entos
copying parmed\entos\converters.py → build\lib.win-amd64-cpython-311\parmed\entos
copying parmed\entos\imports.py → build\lib.win-amd64-cpython-311\parmed\entos
copying parmed\entos_init_.py → build\lib.win-amd64-cpython-311\parmed\entos
creating build\lib.win-amd64-cpython-311\parmed\dlpoly
copying parmed\dlpoly\dlpolyconfig.py → build\lib.win-amd64-cpython-311\parmed\dlpoly
copying parmed\dlpoly\dlpolyfield.py → build\lib.win-amd64-cpython-311\parmed\dlpoly
copying parmed\dlpoly_init_.py → build\lib.win-amd64-cpython-311\parmed\dlpoly
creating build\lib.win-amd64-cpython-311\parmed\modeller\data
copying parmed\modeller\data\standard_residues.lib → build\lib.win-amd64-cpython-311\parmed\modeller\data
copying parmed\modeller\data\ccd_residue_templates.json → build\lib.win-amd64-cpython-311\parmed\modeller\data
UPDATING build\lib.win-amd64-cpython-311\parmed/_version.py
set build\lib.win-amd64-cpython-311\parmed/_version.py to ‘4.1.0’
running build_ext
building ‘parmed.amber._rdparm’ extension
error: Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build Tools”: Microsoft C++ Build Tools - Visual Studio
[end of output]

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

So far I have tryed:
-wheels install
-cmake install
-c++ install
-pip upgarde

Any help would be appreciated!

Compiling Wheels on Windows tends to be a harder proposition than on other OS, as you tend to need to do more bootstrapping and configuring of compiler toolchains.

This is where using the Anaconda distribution of Python can help, as it comes with precompiled libs for Windows. I’d suggest giving that a go. Alternatively, you could switch to using WSL, where it will likely be easier to build wheels relying on compilers.