AWS Lambda OSError (30, «Файловая система только для чтения») - PullRequest
0 голосов
/ 25 февраля 2020

Я пытаюсь запустить tabula-py в AWS Lambda в среде Python3 .7. Код довольно прост:

import tabula

def main(event, context):
    try:
        print(event['Url'])
        df = tabula.read_pdf(event['Url'])
        print(str(df))
        return {
        "StatusCode":200,
        "ResponseCode":0,
        "ResponseMessage": str(df)
    }
    except Exception as e:
        print('exception = %r' % e)
        return {
        "ResponseCode":1,
        "ErrorMessage": str(e)
    }

Как видите, есть только одна настоящая строка кода, имеющая tabula.read_pdf (). Я нигде не записываю файлы, но получаю исключение как exception = OSError(30, 'Read-only file system')

К вашему сведению, подробная информация о таблицах доступна здесь

Ниже приведено то, что я уже пробовал и не работало:

  1. Проверено, правильно ли прочитан URL. Также пытался использовать ссылку, кодированную в har c в коде.
  2. Проверял в Google, Stackoverflow & Co., но не нашел что-то, что может решить эту проблему.
  3. Удалено __pycache__ каталог из ZIP перед загрузкой его, чтобы обновить код. Также ничего не гарантировано. Специфичный для ОС c локальный каталог находится в пакете развертывания lambda.

Любая помощь будет высоко оценена.

1 Ответ

0 голосов
/ 25 февраля 2020

tabula пишет в os, в то время как вы можете попробовать другой пакет утилит pdf table camelot .

...