&引用;“未找到Java”;在使用表格时
各位,我正在使用python中的table py从PDF中提取表。我使用了以下代码&引用;“未找到Java”;在使用表格时,java,python,tabula,Java,Python,Tabula,各位,我正在使用python中的table 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/Hom
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回溯(最近一次调用)
在()
---->1 table_temp=tabla.read_pdf('./示例_pdf/sample1.pdf',第11页)
/read_pdf格式的Users/Myworld/anaconda/lib/python3.5/site-packages/tabla/wrapper.py(输入路径,**kwargs)
64
65尝试:
--->66输出=子流程。检查输出(args)
67最后:
68如果是url:
/检查输出中的Users/Myworld/anaconda/lib/python3.5/subprocess.py(超时,*popenargs,**kwargs)
314
315返回运行(*popenargs,标准输出=管道,超时=超时,检查=真,
-->316**kwargs)标准件
317
318
/运行中的Users/Myworld/anaconda/lib/python3.5/subprocess.py(输入、超时、检查、*popenargs、**kwargs)
381 kwargs['stdin']=管道
382
-->383采用Popen(*popenargs,**kwargs)作为流程:
384试试:
385 stdout,stderr=进程.通信(输入,超时=超时)
/Users/Myworld/anaconda/lib/python3.5/subprocess.py in_uuuuinit_uuu(self、args、bufsize、executable、stdin、stdout、stderr、preexec_fn、close_fds、shell、cwd、env、universal_newlines、startupinfo、creationflags、restore_信号、start_new_session、pass_fds)
674 c2pread,c2pwrite,
675错误读取,错误写入,
-->676恢复信号,启动新会话)
677除:
678#如果孩子启动失败,则进行清理。
/Users/Myworld/anaconda/lib/python3.5/subprocess.py in_execute_child(self、args、execute、preexec_fn、close_fds、pass_fds、cwd、env、startupinfo、creationflags、shell、p2cread、p2c2cwrite、c2pwrite、errread、errwrite、restore_信号、start_new_会话)
1280其他:
1281 err_msg+=':'+repr(原始可执行文件)
->1282引发子项异常类型(errno\u num,err\u msg)
1283引发子项异常类型(错误消息)
1284
FileNotFoundError:[Errno 2]没有这样的文件或目录:“java”
我遇到了同样的错误。实际导致我出错的行是subprocess.call('java')
在我的机器上为我修正了错误
如果安装java仍然不能解决问题,请尝试运行which java
,并将输出目录添加到PATH
环境变量中
HTH路径中是否注册了
java
可执行文件?如果是,您应该能够从os命令行实用程序(例如cmd、bash)中java--version
。你的操作系统是什么?非常感谢你的评论。当我在Mac终端中键入java--version时,我得到“-bash:java:command not found”。然后,您需要将java/bin
目录放入工具加载的路径中。。在ubuntu或centos中,这将是.bashrc
。尝试查看它。可能的副本不清楚您是如何安装Java的,但您必须更新路径
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'