mrzv / dionysus

Library for computing persistent homology
http://mrzv.org/software/dionysus2
Other
144 stars 31 forks source link

ERROR: Could not build wheels for dionysus, which is required to install pyproject.toml-based projects #61

Closed ZzyChris97 closed 5 months ago

ZzyChris97 commented 5 months ago

env

When I install dionysus,met this error: ERROR: Could not build wheels for dionysus, which is required to install pyproject.toml-based projects

the detail is below:

Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Collecting dionysus
  Using cached https://pypi.tuna.tsinghua.edu.cn/packages/5a/9f/dfc7c340a269cdbe686a605afbae5df9037006b2178c3d0a32e36ae854f7/dionysus-2.0.10.tar.gz (1.8 MB)
  Preparing metadata (setup.py) ... done
Building wheels for collected packages: dionysus
  Building wheel for dionysus (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [76 lines of output]
      C:\Users\Administrator\anaconda3\envs\py310\lib\site-packages\setuptools\dist.py:472: SetuptoolsDeprecationWarning: Invalid dash-separated options
      !!

              ********************************************************************************
              Usage of dash-separated 'description-file' will not be supported in future
              versions. Please use the underscore name 'description_file' instead.

              By 2024-Sep-26, you need to update your project and remove deprecated calls
              or your builds will no longer be supported.

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

      !!
        opt = self.warn_dash_deprecation(opt, section)
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build\lib.win-amd64-cpython-310
      creating build\lib.win-amd64-cpython-310\dionysus
      copying bindings\python\dionysus\plot.py -> build\lib.win-amd64-cpython-310\dionysus
      copying bindings\python\dionysus\_version.py -> build\lib.win-amd64-cpython-310\dionysus
      copying bindings\python\dionysus\__init__.py -> build\lib.win-amd64-cpython-310\dionysus
      running build_ext
      Traceback (most recent call last):
        File "C:\Users\Administrator\AppData\Local\Temp\pip-install-o25q5zo5\dionysus_155516ad4e9a49279c2a83a9eb6b1472\setup.py", line 28, in run
          out = subprocess.check_output(['cmake', '--version'])
        File "C:\Users\Administrator\anaconda3\envs\py310\lib\subprocess.py", line 421, in check_output
          return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
        File "C:\Users\Administrator\anaconda3\envs\py310\lib\subprocess.py", line 503, in run
          with Popen(*popenargs, **kwargs) as process:
        File "C:\Users\Administrator\anaconda3\envs\py310\lib\subprocess.py", line 971, in __init__
          self._execute_child(args, executable, preexec_fn, close_fds,
        File "C:\Users\Administrator\anaconda3\envs\py310\lib\subprocess.py", line 1456, in _execute_child
          hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
      FileNotFoundError: [WinError 2] 系统找不到指定的文件。

      During handling of the above exception, another exception occurred:

      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "C:\Users\Administrator\AppData\Local\Temp\pip-install-o25q5zo5\dionysus_155516ad4e9a49279c2a83a9eb6b1472\setup.py", line 67, in <module>
          setup(
        File "C:\Users\Administrator\anaconda3\envs\py310\lib\site-packages\setuptools\__init__.py", line 103, in setup
          return distutils.core.setup(**attrs)
        File "C:\Users\Administrator\anaconda3\envs\py310\lib\site-packages\setuptools\_distutils\core.py", line 185, in setup
          return run_commands(dist)
        File "C:\Users\Administrator\anaconda3\envs\py310\lib\site-packages\setuptools\_distutils\core.py", line 201, in run_commands
          dist.run_commands()
        File "C:\Users\Administrator\anaconda3\envs\py310\lib\site-packages\setuptools\_distutils\dist.py", line 969, in run_commands
          self.run_command(cmd)
        File "C:\Users\Administrator\anaconda3\envs\py310\lib\site-packages\setuptools\dist.py", line 963, in run_command
          super().run_command(command)
        File "C:\Users\Administrator\anaconda3\envs\py310\lib\site-packages\setuptools\_distutils\dist.py", line 988, in run_command
          cmd_obj.run()
        File "C:\Users\Administrator\anaconda3\envs\py310\lib\site-packages\wheel\bdist_wheel.py", line 364, in run
          self.run_command("build")
        File "C:\Users\Administrator\anaconda3\envs\py310\lib\site-packages\setuptools\_distutils\cmd.py", line 318, in run_command
          self.distribution.run_command(command)
        File "C:\Users\Administrator\anaconda3\envs\py310\lib\site-packages\setuptools\dist.py", line 963, in run_command
          super().run_command(command)
        File "C:\Users\Administrator\anaconda3\envs\py310\lib\site-packages\setuptools\_distutils\dist.py", line 988, in run_command
          cmd_obj.run()
        File "C:\Users\Administrator\anaconda3\envs\py310\lib\site-packages\setuptools\_distutils\command\build.py", line 131, in run
          self.run_command(cmd_name)
        File "C:\Users\Administrator\anaconda3\envs\py310\lib\site-packages\setuptools\_distutils\cmd.py", line 318, in run_command
          self.distribution.run_command(command)
        File "C:\Users\Administrator\anaconda3\envs\py310\lib\site-packages\setuptools\dist.py", line 963, in run_command
          super().run_command(command)
        File "C:\Users\Administrator\anaconda3\envs\py310\lib\site-packages\setuptools\_distutils\dist.py", line 988, in run_command
          cmd_obj.run()
        File "C:\Users\Administrator\AppData\Local\Temp\pip-install-o25q5zo5\dionysus_155516ad4e9a49279c2a83a9eb6b1472\setup.py", line 30, in run
          raise RuntimeError("CMake must be installed to build the following extensions: " +
      RuntimeError: CMake must be installed to build the following extensions: dionysus
      [end of output]

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

Dionysus is not supported on Windows. The only way to get it to work on Windows is within the Linux subsystem (WSL).

ZzyChris97 commented 5 months ago

But I met the same promblem when i install dionysys on linux:

Collecting dionysus
  Using cached dionysus-2.0.10.tar.gz (1.8 MB)
  Preparing metadata (setup.py) ... done
Building wheels for collected packages: dionysus
  Building wheel for dionysus (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [76 lines of output]
      /home/hr/.conda/envs/py3_10_torch1_11/lib/python3.10/site-packages/setuptools/dist.py:498: SetuptoolsDeprecationWarning: Invalid dash-separated options
      !!

              ********************************************************************************
              Usage of dash-separated 'description-file' will not be supported in future
              versions. Please use the underscore name 'description_file' instead.

              This deprecation is overdue, please update your project and remove deprecated
              calls to avoid build errors in the future.

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

      !!
        opt = self.warn_dash_deprecation(opt, section)
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.linux-x86_64-cpython-310
      creating build/lib.linux-x86_64-cpython-310/dionysus
      copying bindings/python/dionysus/__init__.py -> build/lib.linux-x86_64-cpython-310/dionysus
      copying bindings/python/dionysus/_version.py -> build/lib.linux-x86_64-cpython-310/dionysus
      copying bindings/python/dionysus/plot.py -> build/lib.linux-x86_64-cpython-310/dionysus
      running build_ext
      Traceback (most recent call last):
        File "/tmp/pip-install-_ju_zo54/dionysus_ef39d33bd890430dacf424120b75464a/setup.py", line 28, in run
          out = subprocess.check_output(['cmake', '--version'])
        File "/home/hr/.conda/envs/py3_10_torch1_11/lib/python3.10/subprocess.py", line 421, in check_output
          return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
        File "/home/hr/.conda/envs/py3_10_torch1_11/lib/python3.10/subprocess.py", line 503, in run
          with Popen(*popenargs, **kwargs) as process:
        File "/home/hr/.conda/envs/py3_10_torch1_11/lib/python3.10/subprocess.py", line 971, in __init__
          self._execute_child(args, executable, preexec_fn, close_fds,
        File "/home/hr/.conda/envs/py3_10_torch1_11/lib/python3.10/subprocess.py", line 1863, in _execute_child
          raise child_exception_type(errno_num, err_msg, err_filename)
      FileNotFoundError: [Errno 2] No such file or directory: 'cmake'

      During handling of the above exception, another exception occurred:

      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/tmp/pip-install-_ju_zo54/dionysus_ef39d33bd890430dacf424120b75464a/setup.py", line 67, in <module>
          setup(
        File "/home/hr/.conda/envs/py3_10_torch1_11/lib/python3.10/site-packages/setuptools/__init__.py", line 103, in setup
          return distutils.core.setup(**attrs)
        File "/home/hr/.conda/envs/py3_10_torch1_11/lib/python3.10/site-packages/setuptools/_distutils/core.py", line 185, in setup
          return run_commands(dist)
        File "/home/hr/.conda/envs/py3_10_torch1_11/lib/python3.10/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
          dist.run_commands()
        File "/home/hr/.conda/envs/py3_10_torch1_11/lib/python3.10/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands
          self.run_command(cmd)
        File "/home/hr/.conda/envs/py3_10_torch1_11/lib/python3.10/site-packages/setuptools/dist.py", line 989, in run_command
          super().run_command(command)
        File "/home/hr/.conda/envs/py3_10_torch1_11/lib/python3.10/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
          cmd_obj.run()
        File "/home/hr/.conda/envs/py3_10_torch1_11/lib/python3.10/site-packages/wheel/bdist_wheel.py", line 364, in run
          self.run_command("build")
        File "/home/hr/.conda/envs/py3_10_torch1_11/lib/python3.10/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
          self.distribution.run_command(command)
        File "/home/hr/.conda/envs/py3_10_torch1_11/lib/python3.10/site-packages/setuptools/dist.py", line 989, in run_command
          super().run_command(command)
        File "/home/hr/.conda/envs/py3_10_torch1_11/lib/python3.10/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
          cmd_obj.run()
        File "/home/hr/.conda/envs/py3_10_torch1_11/lib/python3.10/site-packages/setuptools/_distutils/command/build.py", line 131, in run
          self.run_command(cmd_name)
        File "/home/hr/.conda/envs/py3_10_torch1_11/lib/python3.10/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
          self.distribution.run_command(command)
        File "/home/hr/.conda/envs/py3_10_torch1_11/lib/python3.10/site-packages/setuptools/dist.py", line 989, in run_command
          super().run_command(command)
        File "/home/hr/.conda/envs/py3_10_torch1_11/lib/python3.10/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
          cmd_obj.run()
        File "/tmp/pip-install-_ju_zo54/dionysus_ef39d33bd890430dacf424120b75464a/setup.py", line 30, in run
          raise RuntimeError("CMake must be installed to build the following extensions: " +
      RuntimeError: CMake must be installed to build the following extensions: dionysus
      [end of output]

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

That's a more straightforward problem. The only binary wheel I've uploaded is for Python 3.11. You are using 3.10. You could build from source (which is what it's trying to do), but you'd need to install various missing dependencies: the first one failing is CMake, but there will be others.

But perhaps there is a simpler solution. Correct me if I'm wrong, but it looks like you are using conda. Dionysus is available on conda-forge, and they do a good job compiling binaries for various versions of Python. Would it be easier to just install it that way?

ZzyChris97 commented 5 months ago

That's a more straightforward problem. The only binary wheel I've uploaded is for Python 3.11. You are using 3.10. You could build from source (which is what it's trying to do), but you'd need to install various missing dependencies: the first one failing is CMake, but there will be others.

But perhaps there is a simpler solution. Correct me if I'm wrong, but it looks like you are using conda. Dionysus is available on conda-forge, and they do a good job compiling binaries for various versions of Python. Would it be easier to just install it that way?

really really thanks for your reply! I will try it later