camelot-dev / camelot

A Python library to extract tabular data from PDFs
https://camelot-py.readthedocs.io
MIT License
2.96k stars 466 forks source link

unable to pip install with latest python #382

Closed dss010101 closed 1 year ago

dss010101 commented 1 year ago

Getting the following try to install in a python 3.11 environment:

Collecting camelot
  Downloading Camelot-12.06.29.tar.gz (3.5 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.5/3.5 MB 21.4 MB/s eta 0:00:00
  Preparing metadata (setup.py) ... done
Collecting SQLAlchemy<0.8.0,>=0.7.7 (from camelot)
  Downloading SQLAlchemy-0.7.10.tar.gz (3.5 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.5/3.5 MB 20.0 MB/s eta 0:00:00
  Preparing metadata (setup.py) ... done
Collecting Elixir>=0.7.1 (from camelot)
  Downloading Elixir-0.7.1.tar.gz (47 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 47.1/47.1 kB 4.2 MB/s eta 0:00:00
  Preparing metadata (setup.py) ... done
Collecting sqlalchemy-migrate>=0.7.1 (from camelot)
  Downloading sqlalchemy_migrate-0.13.0-py2.py3-none-any.whl (109 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 109.1/109.1 kB 10.5 MB/s eta 0:00:00
Requirement already satisfied: Jinja2>=2.5.5 in /usr/local/lib/python3.11/site-packages (from camelot) (3.1.2)
Collecting chardet>=1.0.1 (from camelot)
  Downloading chardet-5.1.0-py3-none-any.whl (199 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 199.1/199.1 kB 24.0 MB/s eta 0:00:00
Collecting xlwt==0.7.2 (from camelot)
  Downloading xlwt-0.7.2.zip (131 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 131.2/131.2 kB 16.8 MB/s eta 0:00:00
  Preparing metadata (setup.py) ... done
Collecting xlrd==0.7.1 (from camelot)
  Downloading xlrd-0.7.1.zip (125 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 125.4/125.4 kB 12.6 MB/s eta 0:00:00
  Preparing metadata (setup.py) ... done
Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.11/site-packages (from Jinja2>=2.5.5->camelot) (2.1.3)
Collecting pbr>=1.8 (from sqlalchemy-migrate>=0.7.1->camelot)
  Downloading pbr-5.11.1-py2.py3-none-any.whl (112 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 112.7/112.7 kB 10.2 MB/s eta 0:00:00
INFO: pip is looking at multiple versions of sqlalchemy-migrate to determine which version is compatible with other requirements. This could take a while.
Collecting sqlalchemy-migrate>=0.7.1 (from camelot)
  Downloading sqlalchemy_migrate-0.12.0-py2.py3-none-any.whl (108 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 109.0/109.0 kB 15.0 MB/s eta 0:00:00
  Downloading sqlalchemy-migrate-0.11.0.tar.gz (128 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 128.3/128.3 kB 17.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
  ╰─> [84 lines of output]
      /usr/local/lib/python3.11/site-packages/setuptools/dist.py:755: 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 2023-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)
      /usr/local/lib/python3.11/site-packages/setuptools/dist.py:755: SetuptoolsDeprecationWarning: Invalid dash-separated options
      !!

              ********************************************************************************
              Usage of dash-separated 'author-email' will not be supported in future
              versions. Please use the underscore name 'author_email' instead.

              By 2023-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)
      /usr/local/lib/python3.11/site-packages/setuptools/dist.py:755: SetuptoolsDeprecationWarning: Invalid dash-separated options
      !!

              ********************************************************************************
              Usage of dash-separated 'home-page' will not be supported in future
              versions. Please use the underscore name 'home_page' instead.

              By 2023-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)
      /usr/local/lib/python3.11/site-packages/setuptools/__init__.py:84: _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)
      /usr/local/lib/python3.11/site-packages/setuptools/command/develop.py:40: EasyInstallDeprecationWarning: easy_install command is deprecated.
      !!

              ********************************************************************************
              Please avoid running ``setup.py`` and ``easy_install``.
              Instead, use pypa/build, pypa/installer, pypa/build or
              other standards-based tools.

              See https://github.com/pypa/setuptools/issues/917 for details.
              ********************************************************************************

      !!
        easy_install.initialize_options(self)
      /usr/local/lib/python3.11/site-packages/setuptools/_distutils/cmd.py:66: SetuptoolsDeprecationWarning: setup.py install is deprecated.
      !!

              ********************************************************************************
              Please avoid running ``setup.py`` directly.
              Instead, use pypa/build, pypa/installer, pypa/build or
              other standards-based tools.

              See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details.
              ********************************************************************************

      !!
        self.initialize_options()
      error in setup command: 'tests_require' must be a string or list of strings containing valid project/version requirement specifiers; Expected end or semicolon (after version specifier)
          pytz>=2010h
              ~~~~~~^
      [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.
kerrickstaley commented 1 year ago

I also had this issue. I was able to work around it by first running

pip install sqlalchemy-migrate

and then running

pip install camelot

My system information: macOS 13.3.1 (a)

$ pip --version
pip 23.2.1 from /opt/homebrew/lib/python3.11/site-packages/pip (python 3.11)
kerrickstaley commented 1 year ago

Actually, the reason that this is happening is because we're trying to install the Camelot PyPI package, which is unrelated to this project. We should be installing camelot-py instead.

foarsitter commented 1 year ago

See https://github.com/camelot-dev/camelot/issues/394 for a workaround.