python - tabula-py 的奇怪行为

标签 python tabula

我正在使用 Python 3.5 和 Anaconda 发行版。 tabula-py 版本 1.1.1 已安装。当我运行以下简单程序时:

import tabula

df = tabula.read_pdf("sample.pdf", pages=1, encoding="ISO-8859-1")

df.columns = df.iloc[0]

df.drop(0, inplace=True)

我收到以下错误消息:

AttributeError: module 'tabula' has no attribute 'read_pdf'

但是:如果我打开 Spyder 并在运行代码之前首先在 IPython 控制台中输入“import tabula”,它运行得很好。如果我重新启动内核,我会收到相同的错误,直到我关闭并重新打开 Spyder。

有什么想法吗?提前致谢。

最佳答案

Spyder 在您的控制台和脚本之间有一个共享命名空间。我回答了这个问题的相反here

控制台中定义的任何内容都可以在您运行的脚本的命名空间中访问。模块导入会在所有脚本中缓存,因此您可以在控制台中导入一次,然后在所有脚本中无限期地访问它(直到重置内核)。

您不应依赖此行为,因为该脚本无法在 Spyder 之外运行。相反,您应该在脚本顶部显式导入该模块。

在这种情况下,您可能已将脚本命名为 tabula.py 并且您应该重命名它。

关于python - tabula-py 的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52486476/

相关文章:

python - 我必须将 "def application"与 wsgi_module 一起使用吗?

python - 字典列表的字符串(python)

Python3 : module 'tabula' has no attribute 'read_pdf'

python - ModuleNotFoundError : No module named 'tabula' . 在尝试了很多方法之后

java - 安装了两个版本的 Java 时出现错误 Python tabula

python - 为什么 bool 表达式 "1 in (1, 2, 3) == True"为 False?

python - 你如何在python中定义本地路径

python - 使用 groupby 后更新应用内的数据框

python - 有什么方法可以从python的pdf文件中提取没有任何网格的表?

python - Tabula-py - 导入错误 : No module named tabula