matrix-profile-foundation / matrixprofile

A Python 3 library making time series data mining tasks, utilizing matrix profile algorithms, accessible to everyone.
https://matrixprofile.org
Apache License 2.0
360 stars 62 forks source link

Cannot build wheel on Python 3.10 due to invalid dependency specification #109

Open ecederstrand opened 1 year ago

ecederstrand commented 1 year ago

Trying to install matrixprofile on Python 3.10.16 with pip 23.1.2 fails with this error:

  × Getting requirements to build wheel did not run successfully.
  │ exit code: 1
  ╰─> [57 lines of output]
      <string>:4: _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`.
              ********************************************************************************

      !!
      Traceback (most recent call last):
        File "/tmp/pip-build-env-0x2txb7_/overlay/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/requirements.py", line 35, in __init__
          parsed = _parse_requirement(requirement_string)
        File "/tmp/pip-build-env-0x2txb7_/overlay/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/_parser.py", line 64, in parse_requirement
          return _parse_requirement(Tokenizer(source, rules=DEFAULT_RULES))
        File "/tmp/pip-build-env-0x2txb7_/overlay/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/_parser.py", line 82, in _parse_requirement
          url, specifier, marker = _parse_requirement_details(tokenizer)
        File "/tmp/pip-build-env-0x2txb7_/overlay/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/_parser.py", line 126, in _parse_requirement_details
          marker = _parse_requirement_marker(
        File "/tmp/pip-build-env-0x2txb7_/overlay/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/_parser.py", line 147, in _parse_requirement_marker
          tokenizer.raise_syntax_error(
        File "/tmp/pip-build-env-0x2txb7_/overlay/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/_tokenizer.py", line 165, in raise_syntax_error
          raise ParserSyntaxError(
      pkg_resources.extern.packaging._tokenizer.ParserSyntaxError: Expected end or semicolon (after version specifier)
          cython>=0.x

To my knowledge, this is correct. cython>=0.x is not a valid version specification.

blainerothrock commented 9 months ago

I receive the same error with Python 3.9.18 (pip 23.3.1)

ecederstrand commented 9 months ago

Ping @vanbenschoten ?

HESyang commented 3 months ago

I found the same issue while trying to install the package with pip. Again, there is nothing to do with PIP. I eventually bypassed the issue by installing the package of matrix profile within the docker container. I shared the image of Jupyter Notebook on my medium article (https://medium.com/@ligtleyang/docker-image-for-data-scientist-a-painkiller-to-challenges-from-environment-management-158de7750c57).