Excalibur initdb - 语法无效

Excalibur initdb - Invalid syntax

我在 Debian 9.13 中尝试 Excalibur。我正在按照文档进行操作并在之前安装了 Ghostscript。当我运行pip install excalibur-py,终端returns我:

Successfully installed Click-7.1.2 Flask-1.1.2 PyPDF2-1.26.0 SQLAlchemy-1.3.19 Werkzeug-0.16.1 amqp-2.6.1 billiard-3.6.3.0 camelot-py-0.8.2 celery-4.4.7 chardet-3.0.4 configparser-3.5.3 et-xmlfile-1.0.1 excalibur-py-0.4.3 itsdangerous-1.1.0 jdcal-1.4.1 kombu-4.6.11 openpyxl-2.6.4 pandas-0.25.3 pdfminer.six-20200726 python-dateutil-2.8 .1 sortedcontainers-2.2.2 vine-1.3.0

一切似乎没问题,但是当我 运行 excalibur initdb 时,我有这个错误:

Creating new Excalibur configuration file in: /root/excalibur/excalibur.cfg
Traceback (most recent call last):
  File "/usr/local/bin/excalibur", line 5, in <module>
    from excalibur.cli import cli
  File "/usr/local/lib/python3.5/dist-packages/excalibur/cli.py", line 10, in <module>
    from .tasks import split, extract
  File "/usr/local/lib/python3.5/dist-packages/excalibur/tasks.py", line 10, in <module>
    import camelot
  File "/usr/local/lib/python3.5/dist-packages/camelot/__init__.py", line 5, in <module>
    from .__version__ import __version__
  File "/usr/local/lib/python3.5/dist-packages/camelot/__version__.py", line 11
    version_parts.append(f"-{prerelease}")
                                        ^
SyntaxError: invalid syntax

我错过了什么吗?我不明白这个错误。

我在 Win 7 32 位上遇到了同样的问题 + 一个问题 Python 3.5.

  1. 所以问题出在 version_parts.append(f"-{prerelease}") 行的“f”中。我删除了字符串前有 f 的所有实例...例如

上面的代码行是 version_parts.append("-{预发布}") 您将必须像这样修改所有文件。

  1. 在文件 lib\site-packages\camelot\handles.py 中进行以下更正: 2.1. func: _save_page: 我代码中的第 109 行: 目前:fpath = os.path.join(temp, "page-{page}.pdf") 更正:fpath = os.path.join(temp, "page-{}.pdf".format(page)) 2.2. func: parse: 我的代码中的第 168 行: 目前:os.path.join(tempdir, "page-{p}.pdf") for p in self.pages 更正:os.path.join(tempdir, "page-{}.pdf".format(p)) for p in self.pages

现在函数 read_pdf 运行 没问题了。我没有使用任何其他实用程序,所以我不能向您保证上述修改不会产生问题。