vinecopulib / pyvinecopulib

A Python library for vine copula models
MIT License
92 stars 21 forks source link

Preparing metadata (setup.py) ... error #108

Closed Cherubix closed 10 months ago

Cherubix commented 11 months ago

I got an issue when I pip install pyvinecopulib. the install log and the packages already installed are reported here. Thanks a lot.

C:\Users\sp09275>pip install pyvinecopulib Collecting pyvinecopulib Downloading pyvinecopulib-0.6.3.tar.gz (23.7 MB) ---------------------------------------- 23.7/23.7 MB 1.8 MB/s eta 0:00:00 Preparing metadata (setup.py) ... error error: subprocess-exited-with-error

× python setup.py egg_info did not run successfully. │ exit code: 1 ╰─> [68 lines of output] C:\APPL\python\Python311\Lib\site-packages\setuptools__init__.py:80: _DeprecatedInstaller: setuptools.installer and fetch_build_eggs are deprecated. !!

          ********************************************************************************
          Requirements should be satisfied by a PEP 517 installer.
          If you are using pip, you can try `pip install --use-pep517`.
          ********************************************************************************

  !!
    dist.fetch_build_eggs(dist.setup_requires)
  WARNING setuptools_scm.pyproject_reading toml section missing 'pyproject.toml does not contain a tool.setuptools_scm section'
  running egg_info
  creating C:\Users\sp09275\AppData\Local\Temp\pip-pip-egg-info-cezek57m\pyvinecopulib.egg-info
  writing C:\Users\sp09275\AppData\Local\Temp\pip-pip-egg-info-cezek57m\pyvinecopulib.egg-info\PKG-INFO
  writing dependency_links to C:\Users\sp09275\AppData\Local\Temp\pip-pip-egg-info-cezek57m\pyvinecopulib.egg-info\dependency_links.txt
  writing requirements to C:\Users\sp09275\AppData\Local\Temp\pip-pip-egg-info-cezek57m\pyvinecopulib.egg-info\requires.txt
  writing top-level names to C:\Users\sp09275\AppData\Local\Temp\pip-pip-egg-info-cezek57m\pyvinecopulib.egg-info\top_level.txt
  writing manifest file 'C:\Users\sp09275\AppData\Local\Temp\pip-pip-egg-info-cezek57m\pyvinecopulib.egg-info\SOURCES.txt'
  Traceback (most recent call last):
    File "<string>", line 2, in <module>
    File "<pip-setuptools-caller>", line 34, in <module>
    File "C:\Users\sp09275\AppData\Local\Temp\pip-install-xzsapjb7\pyvinecopulib_e5e2aabc7edb4caf9b4f653540f2a8fe\setup.py", line 153, in <module>
      setup(
    File "C:\APPL\python\Python311\Lib\site-packages\setuptools\__init__.py", line 103, in setup
      return distutils.core.setup(**attrs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "C:\APPL\python\Python311\Lib\site-packages\setuptools\_distutils\core.py", line 185, in setup
      return run_commands(dist)
             ^^^^^^^^^^^^^^^^^^
    File "C:\APPL\python\Python311\Lib\site-packages\setuptools\_distutils\core.py", line 201, in run_commands
      dist.run_commands()
    File "C:\APPL\python\Python311\Lib\site-packages\setuptools\_distutils\dist.py", line 969, in run_commands
      self.run_command(cmd)
    File "C:\APPL\python\Python311\Lib\site-packages\setuptools\dist.py", line 989, in run_command
      super().run_command(command)
    File "C:\APPL\python\Python311\Lib\site-packages\setuptools\_distutils\dist.py", line 988, in run_command
      cmd_obj.run()
    File "C:\APPL\python\Python311\Lib\site-packages\setuptools\command\egg_info.py", line 318, in run
      self.find_sources()
    File "C:\APPL\python\Python311\Lib\site-packages\setuptools\command\egg_info.py", line 326, in find_sources
      mm.run()
    File "C:\APPL\python\Python311\Lib\site-packages\setuptools\command\egg_info.py", line 548, in run
      self.add_defaults()
    File "C:\APPL\python\Python311\Lib\site-packages\setuptools\command\egg_info.py", line 586, in add_defaults
      sdist.add_defaults(self)
    File "C:\APPL\python\Python311\Lib\site-packages\setuptools\command\sdist.py", line 113, in add_defaults
      super().add_defaults()
    File "C:\APPL\python\Python311\Lib\site-packages\setuptools\_distutils\command\sdist.py", line 251, in add_defaults
      self._add_defaults_ext()
    File "C:\APPL\python\Python311\Lib\site-packages\setuptools\_distutils\command\sdist.py", line 336, in _add_defaults_ext
      self.filelist.extend(build_ext.get_source_files())
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "C:\APPL\python\Python311\Lib\site-packages\setuptools\command\build_ext.py", line 266, in get_source_files
      return [*_build_ext.get_source_files(self), *self._get_internal_depends()]
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "C:\APPL\python\Python311\Lib\site-packages\setuptools\command\build_ext.py", line 282, in _get_internal_depends
      path = Path(dep)
             ^^^^^^^^^
    File "C:\APPL\python\Python311\Lib\pathlib.py", line 871, in __new__
      self = cls._from_parts(args)
             ^^^^^^^^^^^^^^^^^^^^^
    File "C:\APPL\python\Python311\Lib\pathlib.py", line 509, in _from_parts
      drv, root, parts = self._parse_args(args)
                         ^^^^^^^^^^^^^^^^^^^^^^
    File "C:\APPL\python\Python311\Lib\pathlib.py", line 493, in _parse_args
      a = os.fspath(a)
          ^^^^^^^^^^^^
  TypeError: expected str, bytes or os.PathLike object, not list
  [end of output]

note: This error originates from a subprocess, and is likely not a problem with pip. error: metadata-generation-failed

× Encountered error while generating package metadata. ╰─> See above for output.

note: This is an issue with the package mentioned above, not pip. hint: See above for details.

Package Version


altgraph 0.17.3 anyio 4.0.0 attrs 22.2.0 Brotli 1.1.0 certifi 2022.12.7 cffi 1.15.1 charset-normalizer 3.3.0 click 8.1.7 colorama 0.4.6 contourpy 1.2.0 cryptography 41.0.4 cycler 0.12.1 deprecation 2.1.0 ecdsa 0.18.0 et-xmlfile 1.1.0 fastapi 0.103.2 fonttools 4.44.0 h11 0.14.0 httptools 0.5.0 idna 3.4 inflate64 0.3.1 iniconfig 2.0.0 jsonschema 4.19.1 jsonschema-specifications 2023.7.1 kiwisolver 1.4.5 marshmallow 3.20.1 marshmallow-dataclass 8.6.0 matplotlib 3.8.1 multivolumefile 0.2.3 mypy-extensions 1.0.0 numpy 1.26.1 openpyxl 3.1.2 packaging 23.0 pandas 2.1.1 pefile 2023.2.7 Pillow 10.1.0 pip 23.3.1 pluggy 1.0.0 psutil 5.9.6 py7zr 0.20.6 pyasn1 0.5.0 pybcj 1.0.1 pybind11 2.11.1 pycparser 2.21 pycryptodome 3.18.0 pycryptodomex 3.19.0 pydantic 1.10.7 pyinstaller 6.1.0 pyinstaller-hooks-contrib 2023.10 pyparsing 3.1.1 pyppmd 1.0.0 pyrsistent 0.19.3 pytest 7.4.2 python-dateutil 2.8.2 python-dotenv 1.0.0 python-jose 3.3.0 python-keycloak 3.3.0 pytz 2023.3 pywin32-ctypes 0.2.2 PyYAML 6.0.1 pyzstd 0.15.9 referencing 0.30.2 requests 2.31.0 requests-toolbelt 1.0.0 rpds-py 0.10.6 rsa 4.9 scipy 1.11.3 setuptools 68.2.2 shapely 2.0.2 six 1.16.0 sniffio 1.3.0 starlette 0.27.0 texttable 1.7.0 typing_extensions 4.5.0 typing-inspect 0.8.0 tzdata 2023.3 urllib3 2.0.7 uvicorn 0.21.1 watchfiles 0.19.0 websockets 11.0.1 wheel 0.41.3 XlsxWriter 3.1.8

tnagler commented 11 months ago

probably relevant: https://stackoverflow.com/questions/73257839/setup-py-install-is-deprecated-warning-shows-up-every-time-i-open-a-terminal-i

tvatter commented 10 months ago

@tnagler We're you able to reproduce? It doesn't surprise me although I was expecting the setup.py depreciation to be softer. I can have a quick look tomorrow morning as I already converted another package to pyproject.toml recently.

Cherubix commented 10 months ago

I did several tentatives, unfortunaltely always with error. I installed setuptools 58.2.0, This is the log: Collecting pyvinecopulib Downloading pyvinecopulib-0.6.3.tar.gz (23.7 MB) ---------------------------------------- 23.7/23.7 MB 8.5 MB/s eta 0:00:00 Preparing metadata (setup.py) ... done Requirement already satisfied: pybind11>=2.4 in c:\appl\python\python311\lib\site-packages (from pyvinecopulib) (2.11.1) Requirement already satisfied: setuptools>=30.3.0 in c:\appl\python\python311\lib\site-packages (from pyvinecopulib) (58.2.0) WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.org', port=443): Read timed out. (read timeout=15)")': /simple/setuptools-scm/ Collecting setuptools_scm>=2.0.0 (from pyvinecopulib) Using cached setuptools_scm-8.0.4-py3-none-any.whl.metadata (6.4 kB) Requirement already satisfied: numpy>=1.14 in c:\appl\python\python311\lib\site-packages (from pyvinecopulib) (1.26.1) Requirement already satisfied: packaging>=20 in c:\appl\python\python311\lib\site-packages (from setuptools_scm>=2.0.0->pyvinecopulib) (23.0) Requirement already satisfied: typing-extensions in c:\appl\python\python311\lib\site-packages (from setuptools_scm>=2.0.0->pyvinecopulib) (4.5.0) Using cached setuptools_scm-8.0.4-py3-none-any.whl (42 kB) Building wheels for collected packages: pyvinecopulib Building wheel for pyvinecopulib (setup.py) ... error error: subprocess-exited-with-error

× python setup.py bdist_wheel did not run successfully. │ exit code: 1 ╰─> [18 lines of output] c:\users\sp09275\appdata\local\temp\pip-install-d7zzlmju\pyvinecopulib_b30892aaaa8f40ecbe0248d14ba8b5a0.eggs\setuptools_scm-8.0.4-py3.11.egg\setuptools_scm_integration\setuptools.py:30: RuntimeWarning: ERROR: setuptools==58.2.0 is used in combination with setuptools_scm>=8.x

  Your build configuration is incomplete and previously worked by accident!
  setuptools_scm requires setuptools>=61

  Suggested workaround if applicable:
   - migrating from the deprecated setup_requires mechanism to pep517/518
     and using a pyproject.toml to declare build dependencies
     which are reliably pre-installed before running the build tools

    warnings.warn(
  WARNING setuptools_scm.pyproject_reading toml section missing 'pyproject.toml does not contain a tool.setuptools_scm section'
  running bdist_wheel
  running build
  running build_ext
  building 'pyvinecopulib' extension
  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 pyvinecopulib Running setup.py clean for pyvinecopulib Failed to build pyvinecopulib ERROR: Could not build wheels for pyvinecopulib, which is required to install pyproject.toml-based projects

tvatter commented 10 months ago

@Cherubix It seems like incompatible versions in your environment no? I read setuptools_scm requires setuptools>=61 in what you wrote.

tvatter commented 10 months ago

Could you maybe try to start from a fresh virtual environment ?

rokopi-byte commented 10 months ago

Same issue here. I was trying to migrate a project from python 3.10 to python 3.11 and got the same issue. I created a fresh virtual environment with python 3.11.6 and this is what i get:

Collecting pyvinecopulib Downloading pyvinecopulib-0.6.3.tar.gz (23.7 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 23.7/23.7 MB 11.9 MB/s eta 0:00:00 Preparing metadata (setup.py) ... error error: subprocess-exited-with-error

× python setup.py egg_info did not run successfully. │ exit code: 1 ╰─> [68 lines of output] C:\Users\pavilion\PycharmProjects\test\venv\Lib\site-packages\setuptools__init__.py:80: _DeprecatedInstaller: setuptools.installer and fetch_build_eggs are deprecated. !!

          ********************************************************************************
          Requirements should be satisfied by a PEP 517 installer.
          If you are using pip, you can try `pip install --use-pep517`.
          ********************************************************************************

  !!
    dist.fetch_build_eggs(dist.setup_requires)
  WARNING setuptools_scm.pyproject_reading toml section missing 'pyproject.toml does not contain a tool.setuptools_scm section'
  running egg_info
  creating C:\Users\pavilion\AppData\Local\Temp\pip-pip-egg-info-_4950f03\pyvinecopulib.egg-info
  writing C:\Users\pavilion\AppData\Local\Temp\pip-pip-egg-info-_4950f03\pyvinecopulib.egg-info\PKG-INFO
  writing dependency_links to C:\Users\pavilion\AppData\Local\Temp\pip-pip-egg-info-_4950f03\pyvinecopulib.egg-info\dependency_links.txt
  writing requirements to C:\Users\pavilion\AppData\Local\Temp\pip-pip-egg-info-_4950f03\pyvinecopulib.egg-info\requires.txt
  writing top-level names to C:\Users\pavilion\AppData\Local\Temp\pip-pip-egg-info-_4950f03\pyvinecopulib.egg-info\top_level.txt
  writing manifest file 'C:\Users\pavilion\AppData\Local\Temp\pip-pip-egg-info-_4950f03\pyvinecopulib.egg-info\SOURCES.txt'
  Traceback (most recent call last):
    File "<string>", line 2, in <module>
    File "<pip-setuptools-caller>", line 34, in <module>
    File "C:\Users\pavilion\AppData\Local\Temp\pip-install-u8l__geu\pyvinecopulib_f334b3868a6441c8b964cf932f38a750\setup.py", line 153, in <module>
      setup(
    File "C:\Users\pavilion\PycharmProjects\test\venv\Lib\site-packages\setuptools\__init__.py", line 103, in setup
      return distutils.core.setup(**attrs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "C:\Users\pavilion\PycharmProjects\test\venv\Lib\site-packages\setuptools\_distutils\core.py", line 185, in setup
      return run_commands(dist)
             ^^^^^^^^^^^^^^^^^^
    File "C:\Users\pavilion\PycharmProjects\test\venv\Lib\site-packages\setuptools\_distutils\core.py", line 201, in run_commands
      dist.run_commands()
    File "C:\Users\pavilion\PycharmProjects\test\venv\Lib\site-packages\setuptools\_distutils\dist.py", line 969, in run_commands
      self.run_command(cmd)
    File "C:\Users\pavilion\PycharmProjects\test\venv\Lib\site-packages\setuptools\dist.py", line 989, in run_command
      super().run_command(command)
    File "C:\Users\pavilion\PycharmProjects\test\venv\Lib\site-packages\setuptools\_distutils\dist.py", line 988, in run_command
      cmd_obj.run()
    File "C:\Users\pavilion\PycharmProjects\test\venv\Lib\site-packages\setuptools\command\egg_info.py", line 318, in run
      self.find_sources()
    File "C:\Users\pavilion\PycharmProjects\test\venv\Lib\site-packages\setuptools\command\egg_info.py", line 326, in find_sources
      mm.run()
    File "C:\Users\pavilion\PycharmProjects\test\venv\Lib\site-packages\setuptools\command\egg_info.py", line 548, in run
      self.add_defaults()
    File "C:\Users\pavilion\PycharmProjects\test\venv\Lib\site-packages\setuptools\command\egg_info.py", line 586, in add_defaults
      sdist.add_defaults(self)
    File "C:\Users\pavilion\PycharmProjects\test\venv\Lib\site-packages\setuptools\command\sdist.py", line 113, in add_defaults
      super().add_defaults()
    File "C:\Users\pavilion\PycharmProjects\test\venv\Lib\site-packages\setuptools\_distutils\command\sdist.py", line 251, in add_defaults
      self._add_defaults_ext()
    File "C:\Users\pavilion\PycharmProjects\test\venv\Lib\site-packages\setuptools\_distutils\command\sdist.py", line 336, in _add_defaults_ext
      self.filelist.extend(build_ext.get_source_files())
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "C:\Users\pavilion\PycharmProjects\test\venv\Lib\site-packages\setuptools\command\build_ext.py", line 266, in get_source_files
      return [*_build_ext.get_source_files(self), *self._get_internal_depends()]
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "C:\Users\pavilion\PycharmProjects\test\venv\Lib\site-packages\setuptools\command\build_ext.py", line 282, in _get_internal_depends
      path = Path(dep)
             ^^^^^^^^^
    File "C:\Users\pavilion\AppData\Local\Programs\Python\Python311\Lib\pathlib.py", line 871, in __new__
      self = cls._from_parts(args)
             ^^^^^^^^^^^^^^^^^^^^^
    File "C:\Users\pavilion\AppData\Local\Programs\Python\Python311\Lib\pathlib.py", line 509, in _from_parts
      drv, root, parts = self._parse_args(args)
                         ^^^^^^^^^^^^^^^^^^^^^^
    File "C:\Users\pavilion\AppData\Local\Programs\Python\Python311\Lib\pathlib.py", line 493, in _parse_args
      a = os.fspath(a)
          ^^^^^^^^^^^^
  TypeError: expected str, bytes or os.PathLike object, not list
  [end of output]

note: This error originates from a subprocess, and is likely not a problem with pip. error: metadata-generation-failed

× Encountered error while generating package metadata. ╰─> See above for output.

note: This is an issue with the package mentioned above, not pip. hint: See above for details.

Pip freeze simply returns:

numpy==1.26.2 packaging==23.2 pybind11==2.11.1 setuptools-scm==8.0.4 typing_extensions==4.8.0

Running with --use-pep517 as suggested makes no effect (it complains about pybind11 missing, which is actually installed). Downgrading setuptools to 0.58.2 as suggested in the stackoverflow question by @tnagler makes no effect.

tvatter commented 10 months ago

Ooook, so there's indeed an issue with Python 3.11. I was able to reproduce the issue. I'm working on a fix.

tvatter commented 10 months ago

OK, https://github.com/vinecopulib/pyvinecopulib/pull/109 should fix it. It seems to work seamlessly on linux, macOS and windows for Python 3.8, 3.9, 3.10 and 3.11.

tvatter commented 10 months ago

New version is available on PyPI, closing the issue. Feel free to reopen if you encounter additional problems.

Cherubix commented 10 months ago

Installation successfully completed. Perfect.