我使用的是Python3.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。
有什么想法吗?提前谢谢。
发布于 2018-09-25 03:59:25
Spyder在您的控制台和脚本之间有一个共享的名称空间。我回答了与这个问题相反的问题here。
在控制台中定义的任何内容都可以在您运行的脚本的名称空间中进行访问。模块导入被缓存在所有脚本中,因此您可以在控制台中导入它一次,然后在所有脚本中无限期地访问它(直到重置内核为止)。
您不应该依赖此行为,因为脚本不能在Spyder之外工作。相反,您应该显式地导入脚本顶部的模块。
在这种情况下,您很可能已经将脚本命名为tabula.py,并且应该将其重命名。
https://stackoverflow.com/questions/52486476
复制相似问题