java - "Java not found"使用 tabula-py

标签 java python tabula

大家,我正在 python 中使用 tabula-py 从 pdf 中提取表格。我使用了以下代码。

import tabula

table_temp = tabula.read_pdf('./example_pdf/sample1.pdf',pages=11)

但是,我收到了如下粘贴的错误消息,其中我被告知“没有这样的文件或目录:'java'”。我已将 Java 安装在以下文件夹中

"/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home". 

谁能帮我解决这个问题吗?

谢谢。


FileNotFoundError                         Traceback (most recent call last)
<ipython-input-4-41c9ba6fd519> in <module>()
----> 1 table_temp = tabula.read_pdf('./example_pdf/sample1.pdf',pages=11)

/Users/Myworld/anaconda/lib/python3.5/site-packages/tabula/wrapper.py in read_pdf(input_path, **kwargs)
     64 
     65     try:
---> 66         output = subprocess.check_output(args)
     67     finally:
     68         if is_url:

/Users/Myworld/anaconda/lib/python3.5/subprocess.py in check_output(timeout, *popenargs, **kwargs)
    314 
    315     return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
--> 316                **kwargs).stdout
    317 
    318 

/Users/Myworld/anaconda/lib/python3.5/subprocess.py in run(input, timeout, check, *popenargs, **kwargs)
    381         kwargs['stdin'] = PIPE
    382 
--> 383     with Popen(*popenargs, **kwargs) as process:
    384         try:
    385             stdout, stderr = process.communicate(input, timeout=timeout)

/Users/Myworld/anaconda/lib/python3.5/subprocess.py in __init__(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds)
    674                                 c2pread, c2pwrite,
    675                                 errread, errwrite,
--> 676                                 restore_signals, start_new_session)
    677         except:
    678             # Cleanup if the child failed starting.

/Users/Myworld/anaconda/lib/python3.5/subprocess.py in _execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, start_new_session)
   1280                             else:
   1281                                 err_msg += ': ' + repr(orig_executable)
-> 1282                     raise child_exception_type(errno_num, err_msg)
   1283                 raise child_exception_type(err_msg)
   1284 

FileNotFoundError: [Errno 2] No such file or directory: 'java'

最佳答案

我遇到了同样的错误。实际导致我出错的行是 subprocess.call('java')

在我的机器上安装 Java 解决了我的错误。

如果安装 Java 仍然无法解决您的问题,请尝试运行 which java,并将输出目录添加到您的 PATH 环境变量中。

关于java - "Java not found"使用 tabula-py,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44490203/

相关文章:

c++ - 如何从c/c++源代码获取Windows的python .pyd? (更新: brisk now in Python in case that's what you want)

python - 将数据框中的行的一部分向右移动?

pandas - PySpark Tabula-Py Read_PDF(错误 : No module named 'org.apache.commons' )

java - Clojure 的自定义访问器策略 `from-java`

python - 提交文件时python curl的问题

java - Apache ivy 与 Eclipse 和多个项目

python - 如何在数据框中查找日期时间值的上一行和下一行?

python - Tabula-py 字体未实现错误

java - 如何在 SWIG 生成的 Java 包装器中处理 ptrdiff_t?

java - Spring Data Rest 和 Cors