Странное поведение tabula-py - PullRequest
0 голосов
/ 24 сентября 2018

Я использую 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 и сначала набираю «import tabula» в консоли IPythonперед запуском кода он работает просто отлично.Если я перезапущу ядро, то получаю ту же ошибку, пока не закрою и снова не открою Spyder.

Есть мысли?Заранее спасибо.

1 Ответ

0 голосов
/ 24 сентября 2018

Spyder имеет общее пространство имен между вашей консолью и вашими скриптами.Я ответил на обратную проблему здесь

Все, что определено в консоли, будет доступно в пространстве имен сценариев, которые вы запускаете.Импорт модулей кэшируется во всех ваших сценариях, поэтому вы можете импортировать его один раз в консоль, а затем бесконечно обращаться к нему во всех ваших сценариях (до тех пор, пока вы не перезагрузите ядро).

Вы не должны полагаться на это поведение, потому что скрипт не будет работать вне Spyder.Вместо этого вам следует явно импортировать модуль в верхней части вашего скрипта.

В этом случае вполне вероятно, что вы назвали свой скрипт tabula.py и вам следует переименовать его.

...