【问题标题】:How to install java for tabula inside docker container如何在docker容器内安装java for tabula
【发布时间】:2021-10-21 08:32:51
【问题描述】:

我找不到与我的问题相关的任何内容

我在docker文件下面试过

RUN apt-get update && apt-get install -y \
software-properties-common


RUN apt-get update && \
    apt-cache search openjdk && \
    apt-get install openjdk-8-jdk && \
    apt-get clean;

RUN apt-get update && \
    apt-get install ca-certificates-java && \
    apt-get clean && \
    update-ca-certificates -f;

ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64/
RUN export JAVA_HOME  

#tabula.errors.JavaNotFoundError: `java` command is not found from this Python 
#process.Please ensure Java is installed and PATH is set for `java`

当我使用 import tabula 时,我得到了 tabula.errors.JavaNotFoundError。有人可以帮忙解决 docker 中的这个错误吗?

更新:

我正在使用烧瓶和 mongodb。在烧瓶中,有一个代码负责读取 pdf 文件,它是 tabula,它需要 Java,正如它在错误中所说的那样。对于我用 pipfile 和 pipfile.lock 安装的其他 python 包

RUN pip install pipenv
COPY Pipfile .         #<---- contains tabula package
COPY Pipfile.lock .    #<---- contains tabula package
RUN PIPENV_VENV_IN_PROJECT=1 pipenv install --deploy 

##But i have no idea how to install java for tabula dependecy.

****************最终更新**********************

我用 pdfplumber 替换了 tabula。现在工作正常,感谢所有试图帮助我的人。

【问题讨论】:

  • 什么代码产生了你引用的错误?与其在普通的 Ubuntu 映像上手动安装 Java,不如启动你的映像 FROM openjdk
  • 这是您的完整 DOCKERFILE 吗?其中你可能应该看看网上的例子,就像@davidmaze 建议的那样,使用预构建的 java 或 openjdk 映像,它们通常保持最新并且比其他自制的更稳定
  • 您好,谢谢您的回复,您能举个例子吗?我尝试了很多。
  • 从 openjdk 给出后仍然给出 tabula.errors.JavaNotFoundError: java command is not found from this Python process.
  • @NoamYizraeli 我更新了请帮忙

标签: java python docker docker-compose dockerfile


【解决方案1】:

通常应该避免使用具有多个主进程的容器映像,例如 python 和 java,我个人建议找到一个不需要 java 环境的 tabula-py 替代品,因为这是最好的使用here指定的容器时的练习:

通常建议您通过每个容器使用一项服务来区分关注区域。

考虑到这一点,因为我不知道你是否能做这些事情,所以我也会提供替代方案。

this docker image 将多个可运行环境打包成一个 java 和 python 等,其 dockerfile 列出了here。 因为它包含的环境比您需要的多,您可以根据自己的需要对其进行精简。

还有 this 项目,虽然它有一段时间没有更新,或者 this 文章描述了一个简洁的自制 python 和 java dockerfile

【讨论】:

  • 谢谢,我用 pdfplumber 替换了 tabula,现在工作正常。
猜你喜欢
  • 2022-06-13
  • 2017-11-11
  • 1970-01-01
  • 1970-01-01
  • 2021-09-08
  • 2020-12-21
  • 1970-01-01
  • 1970-01-01
  • 2022-07-13
相关资源
最近更新 更多