pdsim icon indicating copy to clipboard operation
pdsim copied to clipboard

Installation Issue- Building Wheel for PDSim error

Open TolikPa opened this issue 1 year ago • 26 comments

Dear community,

I am trying to Install PDSim to work on my machine using Anaconda interpreter and PyCharm. I get the following error massage when I do the "pip install -e ." command. I verified that I have the required packages and that they are updated, but the error remains.

Would appreciate any advice on how to resolve the matter.

Thank you very much for helping

" Building wheel for PDSim (pyproject.toml) ... error error: subprocess-exited-with-error

× Building wheel for PDSim (pyproject.toml) did not run successfully. │ exit code: 1 ╰─> [11 lines of output] fatal: not a git repository (or any of the parent directories): .git fatal: not a git repository (or any of the parent directories): .git Error: Command '['git', 'rev-parse', 'HEAD']' returned non-zero exit status 128. Unable to extract the git revision, set to placeholder Error: Command '['git', 'rev-parse', '--abbrev-ref', 'HEAD']' returned non-zero exit status 128. Unable to extract the git branch, set to placeholder to be written to init.py: version = '2.14' git_revision = '????' git_branch = '????' error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/ [end of output]

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

TolikPa avatar Feb 14 '24 19:02 TolikPa

You need to install a compiler as described in the docs, and also in the error message. Did you do a git clone? That is required to make sure all the dependencies are properly included.

ibell avatar Feb 14 '24 22:02 ibell

Thank you very much for the response. I have followed this page for the installation process : https://pdsim.readthedocs.io/en/latest/install_build.html

I have installed TortuiseGit and followed this instructions: "Option A: If you installed TortoiseGit, In Windows Explorer, go to a folder where you want to put the source code for PDSim. Right-click and select “Git Clone…”. Use the URL https://github.com/ibell/pdsim."

TolikPa avatar Feb 14 '24 22:02 TolikPa

Looks like git is not available at the terminal, which is ok, but it is good idea to add git to the path in general.

Did you install a compiler?

ibell avatar Feb 14 '24 22:02 ibell

I have installed Minconda and Visual Studio toolbox

TolikPa avatar Feb 14 '24 22:02 TolikPa

Which Visual Studio?

ibell avatar Feb 14 '24 22:02 ibell

Microsoft Visual C++ 2015-2019 Redistributed (x86) - 14.28.29325 and Microsoft Visual C++ 2015-2019 Redistributed (x64) - 14.38.33130

TolikPa avatar Feb 14 '24 22:02 TolikPa

That's not what you need - see the link in the error message: https://visualstudio.microsoft.com/visual-cpp-build-tools/

ibell avatar Feb 14 '24 22:02 ibell

I have both of them installed; the Visual Studio community 2022 (2) and Visual Studio Build Tools 2022

TolikPa avatar Feb 14 '24 22:02 TolikPa

Hmm, that should be sufficient. Can you do instead: python setup.py build?

ibell avatar Feb 14 '24 22:02 ibell

I have submitted the command in the cmd terminal window I got an: import cython ModuleNotFoundError: No Module named 'cython' During handling of the above expression, another exception occurred: ... ImportError: Sorry the required package cython was not found

TolikPa avatar Feb 14 '24 22:02 TolikPa

Right, you need to do: pip install cython

ibell avatar Feb 14 '24 22:02 ibell

I followed the same process with all the uninstalled packages CoolProp and numpy. Eventually, when I submitted the python setup.py build? It provided me with this response "to be written to init.py.... invalid command name 'build?" and a long list of warnings

TolikPa avatar Feb 14 '24 23:02 TolikPa

How about instead : pip -vv wheel . ?

ibell avatar Feb 14 '24 23:02 ibell

Just tested on my windows machine and wheel building is fine

ibell avatar Feb 14 '24 23:02 ibell

FWIW, I have installed VS community 2022

ibell avatar Feb 14 '24 23:02 ibell

still getting the same error Error:failed to build one or more wheels

TolikPa avatar Feb 14 '24 23:02 TolikPa

Should I do the installation form VS or terminal should be fine ?

TolikPa avatar Feb 14 '24 23:02 TolikPa

That's an interesting idea. Can you try that? In principle terminal should be ok, but it will depend on the details of how you installed.

ibell avatar Feb 14 '24 23:02 ibell

I tried to run it thou VS build tool terminal, and from the VS terminal itself. it resulted in the same error.

Is it possible that I should change something in the setup file to the pyproject file?

TolikPa avatar Feb 14 '24 23:02 TolikPa

Can you post the entire terminal output from your command to the error? Not sure it will be illuminating, but I don't have any great ideas at present.

ibell avatar Feb 15 '24 14:02 ibell

Good morning, the massage is

Obtaining file:///C:/Users/tolik/pdsim Installing build dependencies ... done Checking if build backend supports build_editable ... done Getting requirements to build editable ... done Installing backend dependencies ... done Preparing editable metadata (pyproject.toml) ... done Building wheels for collected packages: PDSim Building editable for PDSim (pyproject.toml) ... error error: subprocess-exited-with-error

× Building editable for PDSim (pyproject.toml) did not run successfully. │ exit code: 1 ╰─> [74 lines of output] to be written to init.py: version = '2.14' git_revision = '710b8615a7d9dd67afff9c8d1bf608a9eb97efe8' git_branch = 'master' C:\Users\tolik\AppData\Local\Temp\pip-build-env-ivivdi6a\normal\Lib\site-packages\wheel\bdist_wheel.py:108: RuntimeWarning: Config variable 'Py_DEBUG' is unset, Python ABI tag may be incorrect if get_flag("Py_DEBUG", hasattr(sys, "gettotalrefcount"), warn=(impl == "cp")): Traceback (most recent call last): File "C:\Users\tolik\AppData\Local\Temp\pip-build-env-ivivdi6a\overlay\Lib\site-packages\setuptools\command\editable_wheel.py", line 150, in run self._create_wheel_file(bdist_wheel) File "C:\Users\tolik\AppData\Local\Temp\pip-build-env-ivivdi6a\overlay\Lib\site-packages\setuptools\command\editable_wheel.py", line 339, in _create_wheel_file files, mapping = self._run_build_commands(dist_name, unpacked, lib, tmp) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\tolik\AppData\Local\Temp\pip-build-env-ivivdi6a\overlay\Lib\site-packages\setuptools\command\editable_wheel.py", line 262, in _run_build_commands self._run_build_subcommands() File "C:\Users\tolik\AppData\Local\Temp\pip-build-env-ivivdi6a\overlay\Lib\site-packages\setuptools\command\editable_wheel.py", line 289, in _run_build_subcommands self.run_command(name) File "C:\Users\tolik\AppData\Local\Temp\pip-build-env-ivivdi6a\overlay\Lib\site-packages\setuptools_distutils\cmd.py", line 318, in run_command self.distribution.run_command(command) File "C:\Users\tolik\AppData\Local\Temp\pip-build-env-ivivdi6a\overlay\Lib\site-packages\setuptools\dist.py", line 963, in run_command super().run_command(command) File "C:\Users\tolik\AppData\Local\Temp\pip-build-env-ivivdi6a\overlay\Lib\site-packages\setuptools_distutils\dist.py", line 988, in run_command cmd_obj.run() File "C:\Users\tolik\AppData\Local\Temp\pip-build-env-ivivdi6a\overlay\Lib\site-packages\setuptools_distutils\command\build_ext.py", line 345, in run self.build_extensions() File "C:\Users\tolik\AppData\Local\Temp\pip-build-env-ivivdi6a\overlay\Lib\site-packages\setuptools_distutils\command\build_ext.py", line 467, in build_extensions self._build_extensions_serial() File "C:\Users\tolik\AppData\Local\Temp\pip-build-env-ivivdi6a\overlay\Lib\site-packages\setuptools_distutils\command\build_ext.py", line 493, in _build_extensions_serial self.build_extension(ext) File "C:\Users\tolik\AppData\Local\Temp\pip-build-env-ivivdi6a\overlay\Lib\site-packages\Cython\Distutils\build_ext.py", line 135, in build_extension super(build_ext, self).build_extension(ext) File "C:\Users\tolik\AppData\Local\Temp\pip-build-env-ivivdi6a\overlay\Lib\site-packages\setuptools_distutils\command\build_ext.py", line 548, in build_extension objects = self.compiler.compile( ^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\tolik\AppData\Local\Temp\pip-build-env-ivivdi6a\overlay\Lib\site-packages\setuptools_distutils_msvccompiler.py", line 343, in compile self.initialize() File "C:\Users\tolik\AppData\Local\Temp\pip-build-env-ivivdi6a\overlay\Lib\site-packages\setuptools_distutils_msvccompiler.py", line 253, in initialize vc_env = _get_vc_env(plat_spec) ^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\tolik\AppData\Local\Temp\pip-build-env-ivivdi6a\overlay\Lib\site-packages\setuptools\msvc.py", line 228, in msvc14_get_vc_env return _msvc14_get_vc_env(plat_spec) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\tolik\AppData\Local\Temp\pip-build-env-ivivdi6a\overlay\Lib\site-packages\setuptools\msvc.py", line 185, in _msvc14_get_vc_env raise distutils.errors.DistutilsPlatformError("Unable to find vcvarsall.bat") distutils.errors.DistutilsPlatformError: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/ C:\Users\tolik\AppData\Local\Temp\pip-build-env-ivivdi6a\overlay\Lib\site-packages\setuptools_distutils\dist.py:988: _DebuggingTips: Problem in editable installation. !!

          ********************************************************************************
          An error happened while installing `PDSim` in editable mode.

          The following steps are recommended to help debug this problem:

          - Try to install the project normally, without using the editable mode.
            Does the error still persist?
            (If it does, try fixing the problem before attempting the editable mode).
          - If you are using binary extensions, make sure you have all OS-level
            dependencies installed (e.g. compilers, toolchains, binary libraries, ...).
          - Try the latest version of setuptools (maybe the error was already fixed).
          - If you (or your project dependencies) are using any setuptools extension
            or customization, make sure they support the editable mode.

          After following the steps above, if the problem still persists and
          you think this is related to how setuptools handles editable installations,
          please submit a reproducible example
          (see https://stackoverflow.com/help/minimal-reproducible-example) to:

              https://github.com/pypa/setuptools/issues

          See https://setuptools.pypa.io/en/latest/userguide/development_mode.html for details.
          ********************************************************************************

  !!
    cmd_obj.run()
  error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
  [end of output]

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

TolikPa avatar Feb 15 '24 14:02 TolikPa

Can you post the output when you run from a Visual Studio shell? It seems like your config is messed up on your computer if python cannot find vcvarsall.bat (which sets a bunch of paths and environment variables)

ibell avatar Feb 17 '24 17:02 ibell

Ian, thank you very much for looking into this; here is the error message from Visual Studio from the power shell; the code that I ran was "pip install -e ."


PS C:\Users\tolik\pdsim> pip install -e .
Installing build dependencies ... done Checking if build backend supports build_editable ... done Getting requirements to build editable ... done Installing backend dependencies ... done Preparing editable metadata (pyproject.toml) ... done Building wheels for collected packages: PDSim Building editable for PDSim (pyproject.toml) ... error error: subprocess-exited-with-error

× Building editable for PDSim (pyproject.toml) did not run successfully. │ exit code: 1 ╰─> [74 lines of output] to be written to init.py: version = '2.14' git_revision = '710b8615a7d9dd67afff9c8d1bf608a9eb97efe8' git_branch = 'master' C:\Users\tolik\AppData\Local\Temp\pip-build-env-3b3ku4zm\normal\Lib\site-packages\wheel\bdist_wheel.py:108: RuntimeWarning: Config variable 'Py_DEBUG' is unset, Python ABI tag may be incorrect if get_flag("Py_DEBUG", hasattr(sys, "gettotalrefcount"), warn=(impl == "cp")): Traceback (most recent call last): File "C:\Users\tolik\AppData\Local\Temp\pip-build-env-3b3ku4zm\overlay\Lib\site-packages\setuptools\command\editable_wheel.py", line 150, in run self._create_wheel_file(bdist_wheel) File "C:\Users\tolik\AppData\Local\Temp\pip-build-env-3b3ku4zm\overlay\Lib\site-packages\setuptools\command\editable_wheel.py", line 339, in _create_wheel_file files, mapping = self._run_build_commands(dist_name, unpacked, lib, tmp) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\tolik\AppData\Local\Temp\pip-build-env-3b3ku4zm\overlay\Lib\site-packages\setuptools\command\editable_wheel.py", line 262, in _run_build_commands self._run_build_subcommands() File "C:\Users\tolik\AppData\Local\Temp\pip-build-env-3b3ku4zm\overlay\Lib\site-packages\setuptools\command\editable_wheel.py", line 289, in _run_build_subcommands self.run_command(name) File "C:\Users\tolik\AppData\Local\Temp\pip-build-env-3b3ku4zm\overlay\Lib\site-packages\setuptools_distutils\cmd.py", line 318, in run_command self.distribution.run_command(command) File "C:\Users\tolik\AppData\Local\Temp\pip-build-env-3b3ku4zm\overlay\Lib\site-packages\setuptools\dist.py", line 963, in run_command super().run_command(command) File "C:\Users\tolik\AppData\Local\Temp\pip-build-env-3b3ku4zm\overlay\Lib\site-packages\setuptools_distutils\dist.py", line 988, in run_command cmd_obj.run() File "C:\Users\tolik\AppData\Local\Temp\pip-build-env-3b3ku4zm\overlay\Lib\site-packages\setuptools_distutils\command\build_ext.py", line 345, in run self.build_extensions() File "C:\Users\tolik\AppData\Local\Temp\pip-build-env-3b3ku4zm\overlay\Lib\site-packages\setuptools_distutils\command\build_ext.py", line 467, in build_extensions self._build_extensions_serial() File "C:\Users\tolik\AppData\Local\Temp\pip-build-env-3b3ku4zm\overlay\Lib\site-packages\setuptools_distutils\command\build_ext.py", line 493, in _build_extensions_serial self.build_extension(ext) File "C:\Users\tolik\AppData\Local\Temp\pip-build-env-3b3ku4zm\overlay\Lib\site-packages\Cython\Distutils\build_ext.py", line 135, in build_extension super(build_ext, self).build_extension(ext) File "C:\Users\tolik\AppData\Local\Temp\pip-build-env-3b3ku4zm\overlay\Lib\site-packages\setuptools_distutils\command\build_ext.py", line 548, in build_extension objects = self.compiler.compile( ^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\tolik\AppData\Local\Temp\pip-build-env-3b3ku4zm\overlay\Lib\site-packages\setuptools_distutils_msvccompiler.py", line 343, in compile self.initialize() File "C:\Users\tolik\AppData\Local\Temp\pip-build-env-3b3ku4zm\overlay\Lib\site-packages\setuptools_distutils_msvccompiler.py", line 253, in initialize vc_env = _get_vc_env(plat_spec) ^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\tolik\AppData\Local\Temp\pip-build-env-3b3ku4zm\overlay\Lib\site-packages\setuptools\msvc.py", line 228, in msvc14_get_vc_env return _msvc14_get_vc_env(plat_spec) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\tolik\AppData\Local\Temp\pip-build-env-3b3ku4zm\overlay\Lib\site-packages\setuptools\msvc.py", line 185, in _msvc14_get_vc_env raise distutils.errors.DistutilsPlatformError("Unable to find vcvarsall.bat") distutils.errors.DistutilsPlatformError: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/ C:\Users\tolik\AppData\Local\Temp\pip-build-env-3b3ku4zm\overlay\Lib\site-packages\setuptools_distutils\dist.py:988: _DebuggingTips: Problem in editable installation. !!

          ********************************************************************************
          An error happened while installing `PDSim` in editable mode.

          The following steps are recommended to help debug this problem:

          - Try to install the project normally, without using the editable mode.
            Does the error still persist?
            (If it does, try fixing the problem before attempting the editable mode).
          - If you are using binary extensions, make sure you have all OS-level
            dependencies installed (e.g. compilers, toolchains, binary libraries, ...).
          - Try the latest version of setuptools (maybe the error was already fixed).
          - If you (or your project dependencies) are using any setuptools extension
            or customization, make sure they support the editable mode.

          After following the steps above, if the problem still persists and
          you think this is related to how setuptools handles editable installations,
          please submit a reproducible example
          (see https://stackoverflow.com/help/minimal-reproducible-example) to:

              https://github.com/pypa/setuptools/issues

          See https://setuptools.pypa.io/en/latest/userguide/development_mode.html for details.
          ********************************************************************************

  !!
    cmd_obj.run()
  error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
  [end of output]

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

TolikPa avatar Feb 17 '24 17:02 TolikPa

I am running out of ideas, it should not behave like this. In your developer prompt, can you do this:

**********************************************************************
** Visual Studio 2022 Developer Command Prompt v17.9.0
** Copyright (c) 2022 Microsoft Corporation
**********************************************************************

D:\Program Files\Microsoft Visual Studio\2022\Community>where cl
D:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.39.33519\bin\Hostx86\x86\cl.exe

ibell avatar Feb 24 '24 14:02 ibell

Hey Ian, I was able to install and run the PDSim at the end, but the problem was that it couldn't build the wheels and finish the installation.

The missing step was to go into the Visual studio build tools and install the C++ package (it is a two-step installation process that was needed).

Thank you very much for your time and for looking into it.

Looking forward to get some results out of the software

Have a great day

TolikPa avatar Apr 02 '24 19:04 TolikPa

That is great to hear. I somehow thought that the C++ tooling was installed by default so I didn't think to mention that. Good to know.

ibell avatar Apr 02 '24 19:04 ibell