【问题标题】:tabula asks me to update java while last version already installedtabula 要求我在已安装最新版本时更新 java
【发布时间】:2021-03-04 16:06:37
【问题描述】:

我已经对我的代码进行了几次测试,每次都运行良好,但现在由于某种原因,它引发了一个奇怪的错误,我会马上停止。 我正在使用 tabula 读取一些 pdf 文件,这是出现错误的代码:

for it_page,page in enumerate(pages_id, start=0):
    print("page : ", page)
    tables = tabula.read_pdf(hermes_pdf_dir + "/" + pdf_name, pages = page)
    
    
    for i,table in enumerate(tables, start=1):
        print( "titre retenu : " + pages_id_titres[it_page][1] + f"_{i}.xlsx")
        table.to_excel(os.path.join(folder_name, pages_id_titres[it_page][1]  + " p" + str(page) + f"_{i}.xlsx"), index=False)

错误出现在以“tables = tabula.read_pdf(...)”开头的行。

最重要的是,这里是完整的错误信息:

Traceback (most recent call last):
  File "get_pdfs_hermes.py", line 299, in <module>
    read_pdf_download_csv(pdf_name2)
  File "get_pdfs_hermes.py", line 199, in read_pdf_download_csv
    tables = tabula.read_pdf(hermes_pdf_dir + "/" + pdf_name, pages = page)
  File "C:\Users\virgi\Python\lib\site-packages\tabula\io.py", line 322, in read_pdf
    output = _run(java_options, kwargs, path, encoding)
  File "C:\Users\virgi\Python\lib\site-packages\tabula\io.py", line 80, in _run
    result = subprocess.run(
  File "C:\Users\virgi\Python\lib\subprocess.py", line 512, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['java', '-Dfile.encoding=UTF8', '-jar', 'C:\\Users\\virgi\\Python\\lib\\site-packages\\tabula\\tabula-1.0.4-jar-with-dependencies.jar', '--pages', '104', '--guess', '--format', 'JSON', 'C:\\Users\\virgi\\Desktop\\virgile_stuff\\prog\\banking analyst\\financial_data/data/hermes_data/hermes_2014_rapportannuel_en.pdf']' returned non-zero exit status 1.

它讨论了 java 依赖项(可能是因为 tabula 有 tabula-py 和 tabula-java ?),我发现的与此类错误最相关的问题是 java 应该更新,而我的最新版本在我的电脑。 有什么想法吗?

【问题讨论】:

  • 我看不到它在哪里谈到需要安装 Java 或 Java 依赖项。请分享它们。 (问题可能只是通过您的 python 应用程序使用的 $PATH 找到了错误版本的 java 命令。)
  • Stephen C :确实,我对更新 java 的想法与我在网上找到的有关我的问题的想法有关,但错误消息中没有明确说明这一点。现在对于 java 路径,我检查了它并很好地链接到了 2021 年 1 月下旬更新的 java.exe,所以我假设它对应于最新的 java 版本(也许我在那里遗漏了一些东西?)。无论如何,感谢斯蒂芬的回答。

标签: java python tabula tabula-py


【解决方案1】:

通过简单地为发生错误时处理的 pdf 文件设置一个异常,它似乎又可以正常工作了。我认为问题来自页面编码或类似的东西。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多