【问题标题】:Tabula CalledProcessError: returned non-zero exit status 2. Tried everything possibleTabula CalledProcessError: 返回非零退出状态 2. 尽一切可能
【发布时间】:2018-10-04 05:22:55
【问题描述】:

我在 python 上使用 Tabula 时不断收到此错误。

我已经完成了与此相关的所有 stackoverflow 问题以及博客。

我的 JDK JRE 是最新的。

java 版本“1.8.0_161” Java(TM) SE 运行时环境 (build 1.8.0_161-b12) Java HotSpot(TM) 64 位服务器 VM(内部版本 25.161-b12,混合模式)

我的路径在环境变量中正确定义。

在 Anaconda 上运行的 Python 版本。

Python 3.6.5 |Anaconda, Inc

df = tabula.read_pdf("C:\XXXXX\PDFExtractor\Test.pdf")

我也尝试过编码。

Tabula CalledProcessError:  Command '['java', '-jar', 'C:\\Users\\xxxxx\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\tabula\\tabula-1.0.1-jar-with-dependencies.jar', '--pages', '1', '--guess', 'C:\\Users\\xxxxxx\\PDFExtractor\\Test.pdf']' returned non-zero exit status 2.

感谢您的帮助。

【问题讨论】:

  • 状态 2 通常表示没有这样的文件或目录 (ENOENT)。仔细检查所有文件名。
  • 我重新检查了我的路径。对于依赖项以及要转换的文件,它们都是正确的。
  • java 怎么样,在你的PATH 中吗?
  • 是的。它是。我已经在这个问题上经历了 20 多个 stackoverflow 问题。完成了所有需要的事情。 :(
  • 很遗憾,您的环境中没有像strace 这样的东西,因为您选择使用Windows。您必须找出问题所在的文件,如果没有您的确切环境和设置,其他任何人都无法做到这一点。

标签: python tabula pdf-extraction


【解决方案1】:

您需要转义反斜杠或使用原始字符串:

df = tabula.read_pdf("C:\\XXXXX\\PDFExtractor\\Test.pdf")

df = tabula.read_pdf(r"C:\XXXXX\PDFExtractor\Test.pdf")

否则您的文件将被视为C:XXXXXPDFExtractorTest.pdf

【讨论】:

    【解决方案2】:

    我发现了错误。我基本上跑 java -jar 'C:\Users\xxxxx\AppData\Local\Continuum\anaconda3\lib\site-packages\tabula\tabula-1.0.1-jar-with-dependencies.jar' 'C:\Users\ xxxxxx\PDFExtractor\Test.pdf' 在命令行中。它抛出和错误

    但是如果我用 " 替换 ' 那么它会给我在命令行上解析的 pdf 的输出。

    java -jar "C:\Users\xxxxx\AppData\Local\Continuum\anaconda3\lib\site-packages\tabula\tabula-1.0.1-jar-with-dependencies.jar" 'C:\Users\ xxxxxx\PDFExtractor\Test.pdf'

    现在我如何让 python 用双引号传递第一部分?

    【讨论】:

      猜你喜欢
      • 2019-10-02
      • 2019-08-12
      • 2019-02-09
      • 2021-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多