Python3:模块“tabula”没有属性“read_pdf”

Suk*_*khi 6 python tabula tabula-py

一个.py程序可以工作,但完全相同的代码,当作为 API 公开时,却无法工作。

该代码使用 Tabula 读取 pdf 并提供表格内容作为输出。

我试过了 :

import tabula
df = tabula.read_pdf("my_pdf")
print(df)
Run Code Online (Sandbox Code Playgroud)

from tabula import wrapper
df = wrapper.read_pdf("my_pdf")
print(df)
Run Code Online (Sandbox Code Playgroud)

我在运行 Ubuntu 的 AWS EC2 上安装了 tabula-py(不是 tabula)。

不仅仅是 read_pdf,我实际上想转换为 CSV 并给出输出。但这也行不通。我得到相同的无属性错误,即module 'tabula' has no attribute 'convert_into

.py 文件和 API 文件(.py 也是如此)位于同一目录中,并由同一用户访问。

任何帮助将不胜感激。

编辑:我试图从 API 运行与操作系统命令 ( os.system("python3 /home/ubuntu/flaskapp/tabler.py"))相同的 python 文件。但它也没有奏效。

小智 36

确保您安装了 tabula-py 而不仅仅是 tabula use

!pip install tabula-py
Run Code Online (Sandbox Code Playgroud)

并导入它使用

from tabula.io import read_pdf
Run Code Online (Sandbox Code Playgroud)

  • 这应该被标记为正确答案 (5认同)

Ski*_*rou 8

实际上,常见问题解答中有一个专门针对此问题的条目\xe2\x80\xaf:

\n
\n

如果你安装了\xe2\x80\x99 tabula,则会发生命名空间冲突。您应该tabula-py在删除后安装tabula

\n
\n

尽管使用read_csv()fromtabula.io有效,正如其他答案所建议的,我也可以tabula.read_csv()在删除tabula并重新安装tabula-py(使用pip install --force-reinstall tabula-py)后使用。

\n


小智 6

如果您在安装 tabula-py 之前意外安装了 tabula,它们会在命名空间中发生冲突(即使在卸载 tabula 之后)。

卸载 tabula-py 并重新安装。这对我来说很有效。


小智 -1

尝试

from tabula import read_pdf

我遇到了同样的问题,这解决了它。