Ошибка Heroku FileNotFoundError: [Ошибка 2] Нет такого файла или каталога

#python #heroku #deployment #zipfile #joblib

#python #heroku #развертывание #zip #joblib

Вопрос:

Я пытаюсь развернуть модель машинного обучения, которая находится внутри zip-файла из-за его размера. Я пытаюсь прочитать модель с помощью joblib, но получаю сообщение об ошибке.

Это часть кода:

     def unzip_model():
        with ZipFile("service/ProperatiBestModel14.zip", 'r') as zip:
            print('Extracting all the files now...')
            zip.extractall()
        mod = joblib.load("service/gbm.pkl")
        return mod
 

и это сообщение об ошибке:

2020-12-10T03:33:40.574939 00:00 приложение [web.1]: предварительная обработка = HousingService()

2020-12-10T03:33:40.574947 00:00 приложение[web.1]: Файл «/app/service/model_service.py «, строка 22, в init

2020-12-10T03:33:40.575054 00:00 приложение[web.1]: self.lgbm = self.__unzip_model()

2020-12-10T03:33:40.575073 00:00 приложение[web.1]: Файл «/app/service/model_service.py «, строка 18, в модели __unzip_

2020-12-10T03:33:40.575168 00:00 приложение [web.1]: mod = joblib.load(«service/gbm.pkl»)

2020-12-10T03:33:40.575255 00:00 приложение[web.1]: Файл «/app/.heroku/python/lib/python3.8/site-packages/joblib/numpy_pickle.py «, строка 577, в нагрузке

2020-12-10T03:33:40.575429 00:00 приложение [web.1]: с открытым (имя файла, ‘rb’) как f:

2020-12-10T03:33:40.575463 00:00 приложение[web.1]: ошибка поиска файла: [Ошибка 2] Нет такого файла или каталога: ‘service/gbm.pkl’

2020-12-10T03:33:40.706453 00:00 heroku[web.1]: процесс завершен со статусом 1

2020-12-10T03:33:40.744274 00:00 heroku[web.1]: состояние изменено с начального на аварийное

Я уже пробовал разные способы назначения каталога, например os.getcwd(), но ничего не работает.

Комментарии:

1. является ли zip-файл частью репозитория GIT, который вы отправляете в Heroku?

2. Да, это часть того же репозитория. Кроме того, Heroku и код могут найти zip-файл. Проблема возникает, когда мне нужно захватить файл, который был внутри zip-файла, как только я распакую все с помощью zip.extractall()

3. просто вернулся к этому. Когда именно вызывается unzip-код? Он должен быть в том же динамо, к которому будет получен доступ, или при создании образа. Если вы используете рабочий процесс, или одноразовый, или процесс выпуска для распаковки, это будут отдельные файловые системы.