【问题标题】:"java not found" when I try to read a PDF file using the Tabula library当我尝试使用 Tabula 库读取 PDF 文件时出现“找不到 java”
【发布时间】:2020-02-21 04:34:42
【问题描述】:

我有一个在 Heroku 上运行的 Python 机器人。当我尝试使用 Tabula 阅读 PDF 时,出现此错误:

Еrror: tabula.errors.JavaNotFoundError: "java" command is not found from this Python process.请确保 Java 已安装并且 PATH 设置为 "java"

为什么我的机器人找不到java?

【问题讨论】:

    标签: python heroku bots


    【解决方案1】:

    The documentation 说

    tabula-py是tabula-java的简单Python包装器,可以读取PDF表格

    Heroku 的 buldpacks 只包含他们需要提供的内容。 Python buildpack 不包含 Java,因此您需要添加 another buildpack。

    应该这样做:

    heroku buildpacks:set heroku/python
    heroku buildpacks:add --index 1 heroku/java
    

    之后,运行 heroku buildpacks 并确保您首先看到 Java buildpack,然后看到 Python buildpack。重新部署并重试。

    如果您还没有pom.xml 文件,您还必须创建一个。 Heroku 给了a minimal example in their documentation。

    【讨论】:

    • 现在有新的错误文件“/app/.heroku/python/lib/python3.7/site-packages/tabula/wrapper.py”,第67行,在_run return subprocess.check_output( args)文件“/app/.heroku/python/lib/python3.7/subprocess.py”,第 395 行,在 check_output **kwargs).stdout 文件“/app/.heroku/python/lib/python3.7/ subprocess.py”,第 472 行,以 Popen(*popenargs, **kwargs) 作为进程运行:文件“/app/.heroku/python/lib/python3.7/subprocess.py”,第 775 行,在 初始化
    • 在此之后还有一个与 Java 文件“/app/.heroku/python/lib/python3.7/subprocess.py”相关的错误,第 1522 行,在 _execute_child raise child_exception_type(errno_num, err_msg , err_filename) 之后是“在处理上述异常期间,发生了另一个异常:”出现了与 Java 相关的错误
    • 这是一个不同的问题,@Murlodin,我们可能需要更多信息。但是我突然想到了一些想法:您是否在本地使用相同版本的 Python (3.7)?您是否在本地使用相同版本的所有依赖项?具体的 Java 错误是什么?请注意,所有这些都应该进入一个新问题,而不是在 cmets 中提出。
    • 感谢您的回答,现在我将创建一个新问题
    • 我使用python 3.7.4
    【解决方案2】:

    要具体说明克里斯提到的上述答案,如果有人仍然无法解决错误,我想提一下他为 pom.xml 提供的链接,您只需删除 <dependencies> 标签和 @987654322 @ 这。只需将 pom.xml 添加到您的根目录即可。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多